--- a/cbsatplugin/atmisccmdplugin/src/atmisccmdplugin.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/cbsatplugin/atmisccmdplugin/src/atmisccmdplugin.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -433,12 +433,15 @@
}
else if (ret == KErrNone)
{
- aBuffer.Create( iReplyBuffer, partLength );
- iReplyBuffer.Delete( 0, partLength );
- if ( iReplyBuffer.Length() == 0 )
- {
- iReplyBuffer.Close();
- }
+
+ if((ret = aBuffer.Create( iReplyBuffer, partLength )) == KErrNone)
+ {
+ iReplyBuffer.Delete( 0, partLength );
+ if ( iReplyBuffer.Length() == 0 )
+ {
+ iReplyBuffer.Close();
+ }
+ }
}
}
@@ -477,35 +480,42 @@
Trace(KDebugPrintD, "iQuietMode: ", iQuietMode);
if ( iQuietMode )
{
- iReplyBuffer.Create( KNullDesC8 );
+ aError = iReplyBuffer.Create( KNullDesC8 );
}
else
{
- iReplyBuffer.Create( aSrcBuffer );
+ aError = iReplyBuffer.Create( aSrcBuffer );
}
- Trace(KDebugPrintD, "aReplyType: ", aReplyType);
- switch ( aReplyType )
+ if(aError == KErrNone)
{
- case EReplyTypeOther:
- break;
-#ifdef PROTOCOL_TDSCDMA
- case EReplyTypeEditor:
- CreateEditModeBuffer( iReplyBuffer );
- break;
-#endif
- case EReplyTypeOk:
- CreateOkOrErrorReply( iReplyBuffer, ETrue );
- break;
- case EReplyTypeError:
- CreateOkOrErrorReply( iReplyBuffer, EFalse );
- break;
- default:
- TRACE_FUNC_EXIT
- return KErrGeneral;
+ Trace(KDebugPrintD, "aReplyType: ", aReplyType);
+ switch ( aReplyType )
+ {
+ case EReplyTypeOther:
+ break;
+ #ifdef PROTOCOL_TDSCDMA
+ case EReplyTypeEditor:
+ aError = CreateEditModeBuffer( iReplyBuffer );
+ break;
+ #endif
+ case EReplyTypeOk:
+ aError = CreateOkOrErrorReply( iReplyBuffer, ETrue );
+ break;
+ case EReplyTypeError:
+ aError = CreateOkOrErrorReply( iReplyBuffer, EFalse );
+ break;
+ default:
+ TRACE_FUNC_EXIT
+ return KErrGeneral;
+ }
+
+ if(aError == KErrNone)
+ {
+ CreatePartOfReply( *iHcReply );
+ }
}
- CreatePartOfReply( *iHcReply );
- HandleCommandCompleted( KErrNone, aReplyType );
+ HandleCommandCompleted( aError, aError ? EReplyTypeUndefined : aReplyType );
if ( EReplyTypeEditor != aReplyType )
{
iHcCmd = NULL;
@@ -513,7 +523,7 @@
iCurrentHandler = NULL;
}
TRACE_FUNC_EXIT
- return KErrNone;
+ return aError;
}
/**
@@ -528,6 +538,8 @@
_LIT8( KErrorReplyNumeric, "4" );
_LIT8( KOkReplyNumeric, "0" );
TBuf8<KErrorReplyLength> replyBuffer;
+ TInt ret = KErrNone;
+
if ( iVerboseMode )
{
replyBuffer.Append( iCarriageReturn );
@@ -556,10 +568,14 @@
replyBuffer.Append( iCarriageReturn );
}
- aReplyBuffer.ReAlloc(aReplyBuffer.Length() + replyBuffer.Length());
- aReplyBuffer.Append( replyBuffer );
+ ret = aReplyBuffer.ReAlloc(aReplyBuffer.Length() + replyBuffer.Length());
+ if(ret == KErrNone)
+ {
+ aReplyBuffer.Append( replyBuffer );
+ }
+
TRACE_FUNC_EXIT
- return KErrNone;
+ return ret;
}
/**
@@ -648,7 +664,12 @@
{
// return error code to AT client
RBuf8 response;
- response.Create(KDefaultCmdBufLength);
+ if (KErrNone != response.Create(KDefaultCmdBufLength))
+ {
+ CreateReplyAndComplete(EReplyTypeError);
+ return;
+ }
+
response.Append(KCRLF);
switch(aError)
{