comparison src/os/unix/ngx_user.c @ 604:611ebd77621d NGINX_0_8_54

nginx 0.8.54 *) Bugfix: if there was a single server for given IPv6 address:port pair, then captures in regular expressions in a "server_name" directive did not work. *) 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 Tue, 14 Dec 2010 00:00:00 +0300
parents 984bb0b1399b
children
comparison
equal deleted inserted replaced
603:94ea26a3b3aa 604:611ebd77621d
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