mirror of
https://github.com/nginx/nginx.git
synced 2026-06-26 11:52:00 +00:00
Input filter might free a buffer if there is no data in it, and in case of first buffer (used for cache header and request header, aka p->buf_to_file) this resulted in cache corruption. Buffer memory was reused to read upstream response before headers were written to disk. Fix is to avoid moving pointers in ngx_event_pipe_add_free_buf() to a buffer start if we were asked to free a buffer used by p->buf_to_file. This fixes occasional cache file corruption, usually resulted in "cache file ... has md5 collision" alerts. Reported by Anatoli Marinov. |
||
|---|---|---|
| .. | ||
| modules | ||
| ngx_event.c | ||
| ngx_event.h | ||
| ngx_event_accept.c | ||
| ngx_event_acceptex.c | ||
| ngx_event_busy_lock.c | ||
| ngx_event_busy_lock.h | ||
| ngx_event_connect.c | ||
| ngx_event_connect.h | ||
| ngx_event_connectex.c | ||
| ngx_event_mutex.c | ||
| ngx_event_openssl.c | ||
| ngx_event_openssl.h | ||
| ngx_event_openssl_stapling.c | ||
| ngx_event_pipe.c | ||
| ngx_event_pipe.h | ||
| ngx_event_posted.c | ||
| ngx_event_posted.h | ||
| ngx_event_timer.c | ||
| ngx_event_timer.h | ||