Mercurial > hg > nginx
view src/os/unix/ngx_errno.c @ 465:5aecc125bc33 release-0.1.7
nginx-0.1.7-RELEASE import
*) Bugfix: on FreeBSD the segmentation fault may occur if the size of
the transferred file was changed; the bug had appeared in 0.1.5.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 12 Nov 2004 14:35:09 +0000 |
parents | a88a3e4e158f |
children | 2ff194b74f1e |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev */ #include <ngx_config.h> #include <ngx_core.h> #if (NGX_STRERROR_R) u_char *ngx_strerror_r(int err, u_char *errstr, size_t size) { if (size == 0) { return 0; } errstr[0] = '\0'; strerror_r(err, (char *) errstr, size); while (*errstr && size) { errstr++; size--; } return errstr; } #elif (NGX_GNU_STRERROR_R) /* Linux strerror_r() */ u_char *ngx_strerror_r(int err, u_char *errstr, size_t size) { char *str; size_t len; if (size == 0) { return 0; } errstr[0] = '\0'; str = strerror_r(err, (char *) errstr, size); if (str != (char *) errstr) { return ngx_cpystrn(errstr, (u_char *) str, size); } while (*errstr && size) { errstr++; size--; } return errstr; } #endif