From: Duncan Sands Date: Thu, 11 Jun 2009 08:09:49 +0000 (+0000) Subject: Avoid leaking memory in an error path. Noticed X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=861d20aab446cce039e5e142091735d99fb426ef;p=oota-llvm.git Avoid leaking memory in an error path. Noticed by cppcheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73187 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Archive/ArchiveWriter.cpp b/lib/Archive/ArchiveWriter.cpp index 336a2bdc658..cebb0877457 100644 --- a/lib/Archive/ArchiveWriter.cpp +++ b/lib/Archive/ArchiveWriter.cpp @@ -167,10 +167,11 @@ Archive::addFileBefore(const sys::Path& filePath, iterator where, mbr->data = 0; mbr->path = filePath; const sys::FileStatus *FSInfo = mbr->path.getFileStatus(false, ErrMsg); - if (FSInfo) - mbr->info = *FSInfo; - else + if (!FSInfo) { + delete mbr; return true; + } + mbr->info = *FSInfo; unsigned flags = 0; bool hasSlash = filePath.toString().find('/') != std::string::npos;