Mercurial > hg > nginx
comparison src/os/unix/ngx_errno.c @ 2335:3d8ab5957202
ngx_strerror_r() style and size == 0 bug fix
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 25 Nov 2008 11:26:32 +0000 |
parents | d4ea69372b94 |
children | e294f37401c0 |
comparison
equal
deleted
inserted
replaced
2334:6e30d64f919b | 2335:3d8ab5957202 |
---|---|
8 #include <ngx_core.h> | 8 #include <ngx_core.h> |
9 | 9 |
10 | 10 |
11 #if (NGX_HAVE_STRERROR_R) | 11 #if (NGX_HAVE_STRERROR_R) |
12 | 12 |
13 u_char *ngx_strerror_r(int err, u_char *errstr, size_t size) | 13 u_char * |
14 ngx_strerror_r(int err, u_char *errstr, size_t size) | |
14 { | 15 { |
15 if (size == 0) { | 16 if (size == 0) { |
16 return 0; | 17 return errstr; |
17 } | 18 } |
18 | 19 |
19 errstr[0] = '\0'; | 20 errstr[0] = '\0'; |
20 | 21 |
21 strerror_r(err, (char *) errstr, size); | 22 strerror_r(err, (char *) errstr, size); |
30 | 31 |
31 #elif (NGX_HAVE_GNU_STRERROR_R) | 32 #elif (NGX_HAVE_GNU_STRERROR_R) |
32 | 33 |
33 /* Linux strerror_r() */ | 34 /* Linux strerror_r() */ |
34 | 35 |
35 u_char *ngx_strerror_r(int err, u_char *errstr, size_t size) | 36 u_char * |
37 ngx_strerror_r(int err, u_char *errstr, size_t size) | |
36 { | 38 { |
37 char *str; | 39 char *str; |
38 | 40 |
39 if (size == 0) { | 41 if (size == 0) { |
40 return 0; | 42 return errstr; |
41 } | 43 } |
42 | 44 |
43 errstr[0] = '\0'; | 45 errstr[0] = '\0'; |
44 | 46 |
45 str = strerror_r(err, (char *) errstr, size); | 47 str = strerror_r(err, (char *) errstr, size); |