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);