Mercurial > hg > nginx-vendor-current
comparison src/os/unix/ngx_user.c @ 604:428c6e58046a NGINX_0_9_0
nginx 0.9.0
*) Feature: the "keepalive_disable" directive.
*) Feature: the "map" directive supports variables as value of a
defined variable.
*) Feature: the "map" directive supports empty strings as value of the
first parameter.
*) Feature: the "map" directive supports expressions as the first
parameter.
*) Feature: nginx(8) manual page.
Thanks to Sergey Osokin.
*) Feature: Linux accept4() support.
Thanks to Simon Liu.
*) Workaround: elimination of Linux linker warning about "sys_errlist"
and "sys_nerr"; the warning had appeared in 0.8.35.
*) Bugfix: a segmentation fault might occur in a worker process, if the
"auth_basic" directive was used.
Thanks to Michail Laletin.
*) Bugfix: compatibility with ngx_http_eval_module; the bug had
appeared in 0.8.42.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 29 Nov 2010 00:00:00 +0300 |
parents | 984bb0b1399b |
children | a7a5fa2e395b |
comparison
equal
deleted
inserted
replaced
603:94ea26a3b3aa | 604:428c6e58046a |
---|---|
39 value = crypt_r((char *) key, (char *) salt, &cd); | 39 value = crypt_r((char *) key, (char *) salt, &cd); |
40 | 40 |
41 err = ngx_errno; | 41 err = ngx_errno; |
42 | 42 |
43 if (err == 0) { | 43 if (err == 0) { |
44 len = ngx_strlen(value); | 44 len = ngx_strlen(value) + 1; |
45 | 45 |
46 *encrypted = ngx_pnalloc(pool, len); | 46 *encrypted = ngx_pnalloc(pool, len); |
47 if (*encrypted) { | 47 if (*encrypted) { |
48 ngx_memcpy(*encrypted, value, len + 1); | 48 ngx_memcpy(*encrypted, value, len); |
49 return NGX_OK; | 49 return NGX_OK; |
50 } | 50 } |
51 } | 51 } |
52 | 52 |
53 ngx_log_error(NGX_LOG_CRIT, pool->log, err, "crypt_r() failed"); | 53 ngx_log_error(NGX_LOG_CRIT, pool->log, err, "crypt_r() failed"); |
77 ngx_set_errno(0); | 77 ngx_set_errno(0); |
78 | 78 |
79 value = crypt((char *) key, (char *) salt); | 79 value = crypt((char *) key, (char *) salt); |
80 | 80 |
81 if (value) { | 81 if (value) { |
82 len = ngx_strlen(value); | 82 len = ngx_strlen(value) + 1; |
83 | 83 |
84 *encrypted = ngx_pnalloc(pool, len); | 84 *encrypted = ngx_pnalloc(pool, len); |
85 if (*encrypted) { | 85 if (*encrypted) { |
86 ngx_memcpy(*encrypted, value, len + 1); | 86 ngx_memcpy(*encrypted, value, len); |
87 } | 87 } |
88 | 88 |
89 #if (NGX_THREADS && NGX_NONREENTRANT_CRYPT) | 89 #if (NGX_THREADS && NGX_NONREENTRANT_CRYPT) |
90 ngx_mutex_unlock(ngx_crypt_mutex); | 90 ngx_mutex_unlock(ngx_crypt_mutex); |
91 #endif | 91 #endif |