diff -r b034b1c214c2 -r e42293e811d8 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestchecker.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestchecker.cpp Thu Jul 15 19:11:42 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestchecker.cpp Thu Aug 19 10:24:28 2010 +0300 @@ -243,10 +243,6 @@ CMTPObjectMetaData* object( CMTPObjectMetaData::NewLC() ); TBool result( iFramework.ObjectMgr().ObjectL( aHandle, *object ) ); - iObjectArray.AppendL( object ); - CleanupStack::Pop( object ); - iHandles.AppendL( aHandle ); - // Obj handle exists if ( result ) { @@ -277,8 +273,18 @@ ret = EMTPRespCodeInvalidParentObject; } } + + if ( result ) + { + iObjectArray.AppendL( object ); + CleanupStack::Pop( object ); + iHandles.AppendL( aHandle ); + } else + { + CleanupStack::PopAndDestroy( object ); ret = EMTPRespCodeInvalidObjectHandle; + } PRINT1( _L( "MM MTP <= CRequestChecker::VerifyObjectHandleL ret = 0x%x" ), ret );