From: Vadim Zeitlin Date: Fri, 30 Mar 2007 16:13:12 +0000 (+0000) Subject: fix memory leak in wxFileTypeImpl::SetCommand() if creating the association fails X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/dda522bf4f1e4e706a938a07f66dba23cee56679?ds=sidebyside fix memory leak in wxFileTypeImpl::SetCommand() if creating the association fails git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45158 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/unix/mimetype.cpp b/src/unix/mimetype.cpp index 76723ea65b..a1b56f14d6 100644 --- a/src/unix/mimetype.cpp +++ b/src/unix/mimetype.cpp @@ -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; }