]> git.saurik.com Git - wxWidgets.git/commitdiff
fix memory leak in wxFileTypeImpl::SetCommand() if creating the association fails
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 30 Mar 2007 16:13:12 +0000 (16:13 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 30 Mar 2007 16:13:12 +0000 (16:13 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45158 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/unix/mimetype.cpp

index 76723ea65b42dc9085cb1e65f9c929b279505460..a1b56f14d6eda084cc5600678e6ac86ab7deb423 100644 (file)
@@ -1425,14 +1425,27 @@ wxFileTypeImpl::SetCommand(const wxString& cmd,
     wxMimeTypeCommands *entry = new wxMimeTypeCommands();
     entry->Add(verb + wxT("=")  + cmd + wxT(" %s "));
 
-    bool ok = true;
+    bool ok = false;
     size_t nCount = strTypes.GetCount();
     for ( size_t i = 0; i < nCount; i++ )
     {
-        if (!m_manager->DoAssociation(strTypes[i], strIcon, entry, strExtensions, strDesc))
-            ok = false;
+        if ( m_manager->DoAssociation
+                        (
+                            strTypes[i],
+                            strIcon,
+                            entry,
+                            strExtensions,
+                            strDesc
+                        ) )
+        {
+            // DoAssociation() took ownership of entry, don't delete it below
+            ok = true;
+        }
     }
 
+    if ( !ok )
+        delete entry;
+
     return ok;
 }