From 463330684406c9d2fe2e9d7078c54b9d9f06dd52 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 4 Feb 2010 06:19:43 +0000 Subject: [PATCH] From PR6228: "Attached patch removes the extra NUL bytes from the output and changes test/Archive/MacOSX.toc from a binary to a text file (removes svn:mime-type=application/octet-stream and adds svn:eol-style=native). I can't figure out how to get SVN to include the new contents of the file in the patch so I'm attaching it separately." Patch by James Abbatiello! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95292 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Archive/ArchiveReader.cpp | 3 ++- test/Archive/MacOSX.toc | Bin 97 -> 72 bytes 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/Archive/ArchiveReader.cpp b/lib/Archive/ArchiveReader.cpp index a0c42b50167..3ef15d25d69 100644 --- a/lib/Archive/ArchiveReader.cpp +++ b/lib/Archive/ArchiveReader.cpp @@ -120,7 +120,8 @@ Archive::parseMemberHeader(const char*& At, const char* End, std::string* error) if (Hdr->name[1] == '1' && Hdr->name[2] == '/') { if (isdigit(Hdr->name[3])) { unsigned len = atoi(&Hdr->name[3]); - pathname.assign(At, len); + const char *nulp = (const char *)memchr(At, '\0', len); + pathname.assign(At, nulp != 0 ? nulp - At : len); At += len; MemberSize -= len; flags |= ArchiveMember::HasLongFilenameFlag; diff --git a/test/Archive/MacOSX.toc b/test/Archive/MacOSX.toc index 61cbd3b2a070a1f46912b650ae839c16da3bd3ab..f971df73325c7a2be490eade9acca1f24e6bfd3e 100644 GIT binary patch delta 47 zcmYfFkdKeo3y$=4adlG&_74hib>T`aOU=tk&Ev{XNdZz5^%OX{Jd6Dt{q*v=09IfQ A7XSbN delta 72 zcmeZB)QgYT3y$=4adlG&_74hibzuMkuGF&ByqwfL5SxK3KP3gmW|%0iAPf=pEcSEs I)60i&09-!~ApigX