mmappcomponents/mmmtpdataprovider/src/mmmtpdputility.cpp
branchRCL_3
changeset 67 16db3449d7ba
parent 53 e42293e811d8
--- a/mmappcomponents/mmmtpdataprovider/src/mmmtpdputility.cpp	Wed Sep 15 12:45:22 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/mmmtpdputility.cpp	Wed Oct 13 15:06:09 2010 +0300
@@ -110,8 +110,14 @@
                     if ( mime->CompareF( KMimeTypeAudio3gpp ) == 0
                         || mime->CompareF( KMimeTypeVideo3gpp ) == 0 )
                         {
+                        delete mime;
+                        mime = NULL;
                         format = EMTPFormatCode3GPContainer;
                         }
+                    }
+
+                if ( mime != NULL )
+                    {
                     delete mime;
                     mime = NULL;
                     }
@@ -519,15 +525,34 @@
 HBufC8* MmMtpDpUtility::OdfMimeTypeL( const TDesC& aFullPath )
     {
     PRINT( _L( "MM MTP => MmMtpDpUtility::OdfMimeTypeL" ) );
+    HBufC8* mimebuf = NULL;
 
-    CContent* content = CContent::NewLC( aFullPath ); // + content
-    HBufC* buffer = HBufC::NewLC( KMimeTypeMaxLength ); // + buffer
+    CContent* content = CContent::NewL( aFullPath );
+    CleanupStack::PushL( content ); // + content
+
+    HBufC* buffer = HBufC::NewL( KMimeTypeMaxLength );
+    CleanupStack::PushL( buffer ); // + buffer
 
     TPtr data = buffer->Des();
-    User::LeaveIfError( content->GetStringAttribute( EMimeType, data ) );
+    TInt err = content->GetStringAttribute( EMimeType, data );
+
+    if ( err == KErrNone )
+        {
+        mimebuf = HBufC8::New( buffer->Length() );
 
-    HBufC8* mimebuf = HBufC8::NewL( buffer->Length() );
-    mimebuf->Des().Copy( *buffer );
+        if ( mimebuf == NULL )
+            {
+            User::LeaveIfError( KErrNotFound );
+            }
+
+        mimebuf->Des().Copy( *buffer );
+        }
+
+    // leave if NULL
+    if ( mimebuf == NULL )
+        {
+        User::Leave( KErrNotFound );
+        }
 
     CleanupStack::PopAndDestroy( buffer ); // - buffer
     CleanupStack::PopAndDestroy( content ); // - content