annotate auto/cc/ccc @ 4895:508e61393b6c

Event pipe: fixed handling of buf_to_file data. 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.
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 30 Oct 2012 11:14:24 +0000
parents d620f497c50f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
515
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
1
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
2 # Copyright (C) Igor Sysoev
4412
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 517
diff changeset
3 # Copyright (C) Nginx, Inc.
515
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
4
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
5
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
6 # Compaq C V6.5-207
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 ngx_include_opt="-I"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10 # warnings
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12 CFLAGS="$CFLAGS -msg_enable level6 -msg_fatal level6"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
13
517
dadfa78d2270 nginx-0.1.33-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
14 CFLAGS="$CFLAGS -msg_disable unknownmacro"
dadfa78d2270 nginx-0.1.33-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
15 CFLAGS="$CFLAGS -msg_disable unusedincl"
515
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
16 CFLAGS="$CFLAGS -msg_disable unnecincl"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
17 CFLAGS="$CFLAGS -msg_disable nestincl"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
18 CFLAGS="$CFLAGS -msg_disable strctpadding"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
19 CFLAGS="$CFLAGS -msg_disable ansialiascast"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
20 CFLAGS="$CFLAGS -msg_disable inlinestoclsmod"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
21 CFLAGS="$CFLAGS -msg_disable cxxkeyword"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
22 CFLAGS="$CFLAGS -msg_disable longlongsufx"
517
dadfa78d2270 nginx-0.1.33-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
23 CFLAGS="$CFLAGS -msg_disable valuepres"
515
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
24
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
25 # STUB
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
26 CFLAGS="$CFLAGS -msg_disable truncintcast"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
27 CFLAGS="$CFLAGS -msg_disable trunclongcast"
517
dadfa78d2270 nginx-0.1.33-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
28
515
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
29 CFLAGS="$CFLAGS -msg_disable truncintasn"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
30 CFLAGS="$CFLAGS -msg_disable trunclongint"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
31 CFLAGS="$CFLAGS -msg_disable intconcastsgn"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
32 CFLAGS="$CFLAGS -msg_disable intconstsign"
517
dadfa78d2270 nginx-0.1.33-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
33 CFLAGS="$CFLAGS -msg_disable switchlong"
dadfa78d2270 nginx-0.1.33-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
34 CFLAGS="$CFLAGS -msg_disable subscrbounds2"
dadfa78d2270 nginx-0.1.33-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
35
515
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
36 CFLAGS="$CFLAGS -msg_disable hexoctunsign"
517
dadfa78d2270 nginx-0.1.33-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
37
515
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
38 CFLAGS="$CFLAGS -msg_disable ignorecallval"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
39 CFLAGS="$CFLAGS -msg_disable nonstandcast"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
40 CFLAGS="$CFLAGS -msg_disable embedcomment"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
41 CFLAGS="$CFLAGS -msg_disable unreachcode"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
42 CFLAGS="$CFLAGS -msg_disable questcompare2"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
43 CFLAGS="$CFLAGS -msg_disable unusedtop"
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
44 CFLAGS="$CFLAGS -msg_disable unrefdecl"
517
dadfa78d2270 nginx-0.1.33-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 515
diff changeset
45
515
417a087c9c4d nginx-0.1.32-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
46 CFLAGS="$CFLAGS -msg_disable bitnotint"