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