| OLD | NEW |
| 1 #include <string.h> | 1 #include <string.h> |
| 2 #include <errno.h> | 2 #include <errno.h> |
| 3 #include "libc.h" | 3 #include "libc.h" |
| 4 | 4 |
| 5 int strerror_r(int err, char *buf, size_t buflen) | 5 int strerror_r(int err, char* buf, size_t buflen) { |
| 6 { | 6 char* msg = strerror(err); |
| 7 » char *msg = strerror(err); | 7 size_t l = strlen(msg); |
| 8 » size_t l = strlen(msg); | 8 if (l >= buflen) { |
| 9 » if (l >= buflen) { | 9 if (buflen) { |
| 10 » » if (buflen) { | 10 memcpy(buf, msg, buflen - 1); |
| 11 » » » memcpy(buf, msg, buflen-1); | 11 buf[buflen - 1] = 0; |
| 12 » » » buf[buflen-1] = 0; | 12 } |
| 13 » » } | 13 return ERANGE; |
| 14 » » return ERANGE; | 14 } |
| 15 » } | 15 memcpy(buf, msg, l + 1); |
| 16 » memcpy(buf, msg, l+1); | 16 return 0; |
| 17 » return 0; | |
| 18 } | 17 } |
| 19 | 18 |
| 20 weak_alias(strerror_r, __xpg_strerror_r); | 19 weak_alias(strerror_r, __xpg_strerror_r); |
| OLD | NEW |