/* strerror.c --- POSIX compatible system error routine
- Copyright (C) 2007-2011 Free Software Foundation, Inc.
+ Copyright (C) 2007-2013 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
if (msg)
return (char *) msg;
+ msg = strerror (n);
+
/* Our strerror_r implementation might use the system's strerror
buffer, so all other clients of strerror have to see the error
- copied into a buffer that we manage. */
- msg = strerror (n);
+ copied into a buffer that we manage. This is not thread-safe,
+ even if the system strerror is, but portable programs shouldn't
+ be using strerror if they care about thread-safety. */
if (!msg || !*msg)
{
static char const fmt[] = "Unknown error %d";