diff options
author | Dmitri Gribenko <gribozavr@gmail.com> | 2012-09-28 14:15:28 +0000 |
---|---|---|
committer | Dmitri Gribenko <gribozavr@gmail.com> | 2012-09-28 14:15:28 +0000 |
commit | 04cb564c8da7a26a04c7c6b3157dad5f3244063d (patch) | |
tree | 468cfdb1d93ab04c60b39b24a93c22665284e8eb /lib/Support/Errno.cpp | |
parent | 8be16fe70395c30762081388b8f6df323ddc82eb (diff) | |
download | llvm-04cb564c8da7a26a04c7c6b3157dad5f3244063d.tar.gz llvm-04cb564c8da7a26a04c7c6b3157dad5f3244063d.tar.bz2 llvm-04cb564c8da7a26a04c7c6b3157dad5f3244063d.tar.xz |
Replace the use of strncpy() and sprintf() with std::string and LLVM streams.
Patch by Martinez, Javier E.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164822 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support/Errno.cpp')
-rw-r--r-- | lib/Support/Errno.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/Support/Errno.cpp b/lib/Support/Errno.cpp index dd218f6099..00be43b750 100644 --- a/lib/Support/Errno.cpp +++ b/lib/Support/Errno.cpp @@ -13,6 +13,7 @@ #include "llvm/Support/Errno.h" #include "llvm/Config/config.h" // Get autoconf configuration settings +#include "llvm/Support/raw_ostream.h" #if HAVE_STRING_H #include <string.h> @@ -39,7 +40,7 @@ std::string StrError(int errnum) { const int MaxErrStrLen = 2000; char buffer[MaxErrStrLen]; buffer[0] = '\0'; - char* str = buffer; + std::string str; #ifdef HAVE_STRERROR_R // strerror_r is thread-safe. if (errnum) @@ -49,6 +50,7 @@ std::string StrError(int errnum) { str = strerror_r(errnum,buffer,MaxErrStrLen-1); # else strerror_r(errnum,buffer,MaxErrStrLen-1); + str = buffer; # endif #elif HAVE_DECL_STRERROR_S // "Windows Secure API" if (errnum) @@ -58,12 +60,13 @@ std::string StrError(int errnum) { // the buffer as fast as possible to minimize impact // of collision of strerror in multiple threads. if (errnum) - strncpy(buffer,strerror(errnum),MaxErrStrLen-1); - buffer[MaxErrStrLen-1] = '\0'; + str = strerror(errnum); #else // Strange that this system doesn't even have strerror // but, oh well, just use a generic message - sprintf(buffer, "Error #%d", errnum); + raw_string_ostream stream(str); + stream << "Error #" << errnum; + stream.flush(); #endif return str; } |