From: Reid Kleckner Date: Fri, 6 Jan 2017 18:22:18 +0000 (+0000) Subject: Use %z for size_t and avoid deprecated string functions X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d130989ed7b7e6e11d9b00c7509cf779490fbce6;p=llvm Use %z for size_t and avoid deprecated string functions This usage of strcpy and snprintf was certainly safe, but using them sets off various deprecation and lint warnings. Easier to just write the belt and suspenders version. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@291256 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Support/TarWriter.cpp b/lib/Support/TarWriter.cpp index b56770e5e4c..5fc17d27637 100644 --- a/lib/Support/TarWriter.cpp +++ b/lib/Support/TarWriter.cpp @@ -87,7 +87,7 @@ static void computeChecksum(UstarHeader &Hdr) { unsigned Chksum = 0; for (size_t I = 0; I < sizeof(Hdr); ++I) Chksum += reinterpret_cast(&Hdr)[I]; - sprintf(Hdr.Checksum, "%06o", Chksum); + snprintf(Hdr.Checksum, sizeof(Hdr.Checksum), "%06o", Chksum); } // Create a tar header and write it to a given output stream. @@ -98,7 +98,7 @@ static void writePaxHeader(raw_fd_ostream &OS, StringRef Path) { // Create a 512-byte header. UstarHeader Hdr = {}; - sprintf(Hdr.Size, "%011lo", PaxAttr.size()); + snprintf(Hdr.Size, sizeof(Hdr.Size), "%011zo", PaxAttr.size()); Hdr.TypeFlag = 'x'; // PAX magic memcpy(Hdr.Magic, "ustar", 6); // Ustar magic computeChecksum(Hdr); @@ -114,8 +114,8 @@ static void writePaxHeader(raw_fd_ostream &OS, StringRef Path) { static void writeUstarHeader(raw_fd_ostream &OS, StringRef Path, size_t Size) { UstarHeader Hdr = {}; memcpy(Hdr.Name, Path.data(), Path.size()); - strcpy(Hdr.Mode, "0000664"); - sprintf(Hdr.Size, "%011lo", Size); + memcpy(Hdr.Mode, "0000664", 8); + snprintf(Hdr.Size, sizeof(Hdr.Size), "%011zo", Size); memcpy(Hdr.Magic, "ustar", 6); computeChecksum(Hdr); OS << StringRef(reinterpret_cast(&Hdr), sizeof(Hdr));