Mercurial > hg > nginx
annotate auto/lib/conf @ 8106:8852f39311de
Fixed segfault when switching off master process during upgrade.
Binary upgrades are not supported without master process, but it is,
however, possible, that nginx running with master process is asked
to upgrade binary, and the configuration file as available on disk
at this time includes "master_process off;".
If this happens, listening sockets inherited from the previous binary
will have ls[i].previous set. But the old cycle on initial process
startup, including startup after binary upgrade, is destroyed by
ngx_init_cycle() once configuration parsing is complete. As a result,
an attempt to dereference ls[i].previous in ngx_event_process_init()
accesses already freed memory.
Fix is to avoid looking into ls[i].previous if the old cycle is already
freed.
With this change it is also no longer needed to clear ls[i].previous in
worker processes, so the relevant code was removed.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 23 Nov 2022 23:48:53 +0300 |
parents | cc7ff76df927 |
children |
rev | line source |
---|---|
444
42d11f017717
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents:
399
diff
changeset
|
1 |
42d11f017717
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents:
399
diff
changeset
|
2 # Copyright (C) Igor Sysoev |
4412 | 3 # Copyright (C) Nginx, Inc. |
444
42d11f017717
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents:
399
diff
changeset
|
4 |
210
00cafae0bdf1
nginx-0.0.1-2003-12-14-23:10:27 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
5 |
481 | 6 if [ $USE_PCRE = YES -o $PCRE != NONE ]; then |
255
e6938ca7331a
nginx-0.0.2-2004-02-09-23:47:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
212
diff
changeset
|
7 . auto/lib/pcre/conf |
2893
da1ba8a5c8c9
stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents:
2892
diff
changeset
|
8 |
da1ba8a5c8c9
stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents:
2892
diff
changeset
|
9 else |
7068
cc7ff76df927
Configure: fixed PCRE requirement check by ngx_http_rewrite_module.
Samuel Martin <s.martin49@gmail.com>
parents:
6603
diff
changeset
|
10 if [ $USE_PCRE = DISABLED -a $HTTP = YES -a $HTTP_REWRITE = YES ]; then |
2893
da1ba8a5c8c9
stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents:
2892
diff
changeset
|
11 |
da1ba8a5c8c9
stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents:
2892
diff
changeset
|
12 cat << END |
da1ba8a5c8c9
stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents:
2892
diff
changeset
|
13 |
da1ba8a5c8c9
stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents:
2892
diff
changeset
|
14 $0: error: the HTTP rewrite module requires the PCRE library. |
da1ba8a5c8c9
stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents:
2892
diff
changeset
|
15 You can either disable the module by using --without-http_rewrite_module |
da1ba8a5c8c9
stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents:
2892
diff
changeset
|
16 option or you have to enable the PCRE support. |
da1ba8a5c8c9
stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents:
2892
diff
changeset
|
17 |
da1ba8a5c8c9
stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents:
2892
diff
changeset
|
18 END |
da1ba8a5c8c9
stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents:
2892
diff
changeset
|
19 exit 1 |
da1ba8a5c8c9
stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents:
2892
diff
changeset
|
20 fi |
210
00cafae0bdf1
nginx-0.0.1-2003-12-14-23:10:27 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
21 fi |
00cafae0bdf1
nginx-0.0.1-2003-12-14-23:10:27 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
22 |
2893
da1ba8a5c8c9
stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents:
2892
diff
changeset
|
23 |
477 | 24 if [ $USE_OPENSSL = YES ]; then |
25 . auto/lib/openssl/conf | |
210
00cafae0bdf1
nginx-0.0.1-2003-12-14-23:10:27 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
26 fi |
00cafae0bdf1
nginx-0.0.1-2003-12-14-23:10:27 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
27 |
00cafae0bdf1
nginx-0.0.1-2003-12-14-23:10:27 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
28 if [ $USE_ZLIB = YES ]; then |
00cafae0bdf1
nginx-0.0.1-2003-12-14-23:10:27 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
29 . auto/lib/zlib/conf |
00cafae0bdf1
nginx-0.0.1-2003-12-14-23:10:27 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
30 fi |
599 | 31 |
6383 | 32 if [ $USE_LIBXSLT != NO ]; then |
2139 | 33 . auto/lib/libxslt/conf |
34 fi | |
35 | |
6383 | 36 if [ $USE_LIBGD != NO ]; then |
2788 | 37 . auto/lib/libgd/conf |
38 fi | |
39 | |
6419 | 40 if [ $USE_PERL != NO ]; then |
599 | 41 . auto/lib/perl/conf |
42 fi | |
1949 | 43 |
6383 | 44 if [ $USE_GEOIP != NO ]; then |
2985 | 45 . auto/lib/geoip/conf |
46 fi | |
3363 | 47 |
1949 | 48 if [ $NGX_GOOGLE_PERFTOOLS = YES ]; then |
49 . auto/lib/google-perftools/conf | |
50 fi | |
3363 | 51 |
52 if [ $NGX_LIBATOMIC != NO ]; then | |
53 . auto/lib/libatomic/conf | |
54 fi |