diff -r 211563e4b919 -r 6b6fd149daa2 persistentstorage/sql/SRC/Server/SqlSrvSession.cpp --- a/persistentstorage/sql/SRC/Server/SqlSrvSession.cpp Wed Apr 14 17:46:32 2010 +0300 +++ b/persistentstorage/sql/SRC/Server/SqlSrvSession.cpp Tue Apr 27 18:25:57 2010 +0300 @@ -1200,16 +1200,16 @@ @return The blob stream handle @leave KErrNoMemory, An out of memory condition has occurred; - KErrArgument, The IPC data buffer length is invalid, or the ROWID is invalid, - or UTF-16 to UTF-8 string conversion failed; + KErrArgument, The ROWID is invalid or UTF-16 to UTF-8 string conversion failed; KErrBadDescriptor The transferred data is bigger than the specified length; KErrBadName, The table name, column name or database name has an invalid length; KErrPermissionDenied, The client does not have the required security capabilites for this operation; Note that the function may also leave with some other system wide errors or database specific errors categorised as ESqlDbError. -@panic SqlDb 2 Client panic. The database object is not yet created (iDatabase is NULL) -@panic SqlDb 3 Client panic. Failed to create a blob stream handle +@panic SqlDb 2 Client panic. The database object is not yet created (iDatabase is NULL). +@panic SqlDb 3 Client panic. Failed to create a blob stream handle. +@panic SqlDb 4 Client panic. IPC buffer length is 0. Usage of the IPC call arguments: Arg 0: [in] The length of the IPC data buffer @@ -1220,13 +1220,11 @@ { __SQLPANIC_CLIENT(iDatabase != NULL, aMessage, ESqlPanicInvalidObj); + TInt ipcPrmLen = aMessage.Int0(); + __SQLPANIC_CLIENT(ipcPrmLen > 0, aMessage, ESqlPanicBadArgument); + iIpcStreams.AllocL(); - TInt ipcPrmLen = aMessage.Int0(); - if(ipcPrmLen < 1) - { - __SQLLEAVE(KErrArgument); - } TDes8& ipcPrmDes = ReadString8ZL(aMessage, 1, ipcPrmLen); RDesReadStream strm(ipcPrmDes);