From dda522bf4f1e4e706a938a07f66dba23cee56679 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 30 Mar 2007 16:13:12 +0000 Subject: [PATCH] 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 --- src/unix/mimetype.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) 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; } -- 2.45.2