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 |