From 074671aa7174af68aca45c01a8fc2fc386f696a4 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Thu, 19 Jul 2012 20:11:44 -0700 Subject: [PATCH] ::unpack "if (fo)"; also "delete []" (SourceForge bug 3545609) --- src/p_mach.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/p_mach.cpp b/src/p_mach.cpp index 90e84e71..0e82c166 100644 --- a/src/p_mach.cpp +++ b/src/p_mach.cpp @@ -1139,7 +1139,8 @@ void PackMachBase::unpack(OutputFile *fo) ) { if (lc_seg==sc->cmd && 0!=sc->filesize ) { - fo->seek(sc->fileoff, SEEK_SET); + if (fo) + fo->seek(sc->fileoff, SEEK_SET); unsigned filesize = sc->filesize; unpackExtent(filesize, fo, total_in, total_out, c_adler, u_adler, false, sizeof(bhdr)); @@ -1161,11 +1162,13 @@ void PackMachBase::unpack(OutputFile *fo) if (lc_seg==rc->cmd && 0!=rc->filesize ) { fi->seek(rc->fileoff, SEEK_SET); - fo->seek(sc->fileoff, SEEK_SET); + if (fo) + fo->seek(sc->fileoff, SEEK_SET); unsigned const len = rc->filesize; MemBuffer data(len); fi->readx(data, len); - fo->write(data, len); + if (fo) + fo->write(data, len); } } } @@ -1180,7 +1183,7 @@ void PackMachBase::unpack(OutputFile *fo) c_adler, u_adler, false, sizeof(bhdr)); } } - delete mhdr; + delete [] mhdr; }