summaryrefslogtreecommitdiffstats
path: root/base/debug_util_posix.cc
diff options
context:
space:
mode:
authortschmelcher@chromium.org <tschmelcher@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-13 18:27:40 +0000
committertschmelcher@chromium.org <tschmelcher@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-13 18:27:40 +0000
commit57b765671983005059e8be4523872796b9505428 (patch)
treec84b82b586cae2b39ef784f1ee1d58c1431bb140 /base/debug_util_posix.cc
parentfd8d08436730ef67591de7665da88e995159b773 (diff)
downloadchromium_src-57b765671983005059e8be4523872796b9505428.zip
chromium_src-57b765671983005059e8be4523872796b9505428.tar.gz
chromium_src-57b765671983005059e8be4523872796b9505428.tar.bz2
Eliminate all uses of strerror() in code that uses src/base. strerror() is inherently unsafe in multi-threaded apps because it stores the string in a global buffer. It should never be used. If you want to log an error, use PLOG and friends, or if that's too high-level then use safe_strerror().
TEST=built on Linux in 32-bit and 64-bit mode; ran base_unittests in each case; ran Chromium itself in each case; try servers BUG=none Review URL: http://codereview.chromium.org/261055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28850 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/debug_util_posix.cc')
-rw-r--r--base/debug_util_posix.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/base/debug_util_posix.cc b/base/debug_util_posix.cc
index dc86c8c..4b79d73 100644
--- a/base/debug_util_posix.cc
+++ b/base/debug_util_posix.cc
@@ -21,6 +21,7 @@
#include "base/compat_execinfo.h"
#include "base/eintr_wrapper.h"
#include "base/logging.h"
+#include "base/safe_strerror_posix.h"
#include "base/scoped_ptr.h"
#include "base/string_piece.h"
@@ -150,7 +151,7 @@ void StackTrace::OutputToStream(std::ostream* os) {
// If we can't retrieve the symbols, print an error and just dump the raw
// addresses.
if (trace_symbols.get() == NULL) {
- (*os) << "Unable get symbols for backtrace (" << strerror(errno)
+ (*os) << "Unable get symbols for backtrace (" << safe_strerror(errno)
<< "). Dumping raw addresses in trace:\n";
for (int i = 0; i < count_; ++i) {
(*os) << "\t" << trace_[i] << "\n";