Проблема с нулевым байтом в ngx_crypt()
Laletin Michail
dedmustdie на gmail.com
Пн Ноя 29 11:17:46 MSK 2010
src/os/unix/ngx_user.c
81 if (value) {
82 len = ngx_strlen(value);
83
84 *encrypted = ngx_pnalloc(pool, len);
85 if (*encrypted) {
86 ngx_memcpy(*encrypted, value, len + 1);
87 }
Под строку encrypted выделяется место без учёта нулевого байта на
конце (len байт).
А копируется len + 1 байт.
У меня из-за этого строка encrypted вылезает за пределы ngx_pool_s в
которой для неё
зарезервировано место и затирает один байт в следующей ngx_pool_s,
повреждая d.last.
В конечном итоге это приводит к полному затиранию d.last d.end и потом
segmentation violation.
-----------------------------------
Лалетин Михаил
Подробная информация о списке рассылки nginx-ru