annotate auto/lib/perl/conf @ 7690:8253424d1aff

Added size check to ngx_http_alloc_large_header_buffer(). This ensures that copying won't write more than the buffer size even if the buffer comes from hc->free and it is smaller than the large client header buffer size in the virtual host configuration. This might happen if size of large client header buffers is different in name-based virtual hosts, similarly to the problem with number of buffers fixed in 6926:e662cbf1b932.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 06 Aug 2020 05:02:22 +0300
parents 30b6f1ff192b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
1
869b6444d234 nginx-0.3.21-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: 950
diff changeset
3 # Copyright (C) Nginx, Inc.
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
4
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
5
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
6 echo "checking for perl"
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 NGX_PERL_VER=`$NGX_PERL -v 2>&1 | grep '^This is perl' 2>&1 \
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10 | sed -e 's/^This is perl, \(.*\)/\1/'`
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12 if test -n "$NGX_PERL_VER"; then
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
13 echo " + perl version: $NGX_PERL_VER"
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
14
6821
30b6f1ff192b Perl: removed special environment handling for the perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6700
diff changeset
15 if [ "`$NGX_PERL -e 'use 5.008006; print "OK"'`" != "OK" ]; then
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
16 echo
6821
30b6f1ff192b Perl: removed special environment handling for the perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6700
diff changeset
17 echo "$0: error: perl 5.8.6 or higher is required"
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
18 echo
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
19
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
20 exit 1;
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
21 fi
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
22
4866
fac1cc762969 Configure: additional test for ExtUtils::Embed perl module presence.
Andrey Belov <defan@nginx.com>
parents: 4412
diff changeset
23 if [ "`$NGX_PERL -MExtUtils::Embed -e 'print "OK"'`" != "OK" ]; then
fac1cc762969 Configure: additional test for ExtUtils::Embed perl module presence.
Andrey Belov <defan@nginx.com>
parents: 4412
diff changeset
24 echo
fac1cc762969 Configure: additional test for ExtUtils::Embed perl module presence.
Andrey Belov <defan@nginx.com>
parents: 4412
diff changeset
25 echo "$0: error: perl module ExtUtils::Embed is required"
fac1cc762969 Configure: additional test for ExtUtils::Embed perl module presence.
Andrey Belov <defan@nginx.com>
parents: 4412
diff changeset
26 echo
fac1cc762969 Configure: additional test for ExtUtils::Embed perl module presence.
Andrey Belov <defan@nginx.com>
parents: 4412
diff changeset
27
fac1cc762969 Configure: additional test for ExtUtils::Embed perl module presence.
Andrey Belov <defan@nginx.com>
parents: 4412
diff changeset
28 exit 1;
fac1cc762969 Configure: additional test for ExtUtils::Embed perl module presence.
Andrey Belov <defan@nginx.com>
parents: 4412
diff changeset
29 fi
fac1cc762969 Configure: additional test for ExtUtils::Embed perl module presence.
Andrey Belov <defan@nginx.com>
parents: 4412
diff changeset
30
6700
0d2956dfc4e6 Perl: pass additional linker options to perl module.
Konstantin Pavlov <thresh@nginx.com>
parents: 6419
diff changeset
31 NGX_PM_CFLAGS=`$NGX_PERL -MExtUtils::Embed -e ccopts`
0d2956dfc4e6 Perl: pass additional linker options to perl module.
Konstantin Pavlov <thresh@nginx.com>
parents: 6419
diff changeset
32 NGX_PM_LDFLAGS=`$NGX_PERL -MConfig -e 'print $Config{lddlflags}'`
0d2956dfc4e6 Perl: pass additional linker options to perl module.
Konstantin Pavlov <thresh@nginx.com>
parents: 6419
diff changeset
33
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 669
diff changeset
34 NGX_PERL_CFLAGS="$CFLAGS `$NGX_PERL -MExtUtils::Embed -e ccopts`"
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 669
diff changeset
35
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 669
diff changeset
36 # gcc 4.1/4.2 warn about unused values in pTHX_
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 669
diff changeset
37 NGX_PERL_CFLAGS=`echo $NGX_PERL_CFLAGS \
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 669
diff changeset
38 | sed -e 's/-Wunused-value/-Wno-unused-value/'`
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 669
diff changeset
39 # icc8 warns 'declaration hides parameter "my_perl"' in ENTER and LEAVE
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 669
diff changeset
40 NGX_PERL_CFLAGS=`echo $NGX_PERL_CFLAGS \
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 669
diff changeset
41 | sed -e 's/-wd171/-wd171 -wd1599/'`
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 669
diff changeset
42
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
43 ngx_perl_ldopts=`$NGX_PERL -MExtUtils::Embed -e ldopts`
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
44
5145
f6777aef5b2f Configure: fixed perl module make rules.
Ruslan Ermilov <ru@nginx.com>
parents: 4866
diff changeset
45 ngx_perl_dlext=`$NGX_PERL -MConfig -e 'print $Config{dlext}'`
5743
dde2ae4701e1 Configure: restored "nginx/" missed in 6e4bb1d6679d.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5739
diff changeset
46 ngx_perl_libdir="src/http/modules/perl/blib/arch/auto"
dde2ae4701e1 Configure: restored "nginx/" missed in 6e4bb1d6679d.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5739
diff changeset
47 ngx_perl_module="$ngx_perl_libdir/nginx/nginx.$ngx_perl_dlext"
5145
f6777aef5b2f Configure: fixed perl module make rules.
Ruslan Ermilov <ru@nginx.com>
parents: 4866
diff changeset
48
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
49 if $NGX_PERL -V:usemultiplicity | grep define > /dev/null; then
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
50 have=NGX_HAVE_PERL_MULTIPLICITY . auto/have
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
51 echo " + perl interpreter multiplicity found"
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
52 fi
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
53
872
1c4a5b3f9110 Axe several perl interpreter instances: they may be useful in currently
Igor Sysoev <igor@sysoev.ru>
parents: 681
diff changeset
54 if $NGX_PERL -V:useithreads | grep undef > /dev/null; then
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
55 # FreeBSD port wants to link with -pthread non-threaded perl
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
56 ngx_perl_ldopts=`echo $ngx_perl_ldopts | sed 's/ -pthread//'`
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
57 fi
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
58
5722
baf2816d556d Configure: workaround for system perl on OS X (ticket #576).
Maxim Dounin <mdounin@mdounin.ru>
parents: 5145
diff changeset
59 if [ "$NGX_SYSTEM" = "Darwin" ]; then
baf2816d556d Configure: workaround for system perl on OS X (ticket #576).
Maxim Dounin <mdounin@mdounin.ru>
parents: 5145
diff changeset
60 # OS X system perl wants to link universal binaries
5739
6e4bb1d6679d Configure: style.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5722
diff changeset
61 ngx_perl_ldopts=`echo $ngx_perl_ldopts \
6308
7e241b36819d Configure: improved workaround for system perl on OS X.
Ruslan Ermilov <ru@nginx.com>
parents: 5743
diff changeset
62 | sed -e 's/-arch i386//' -e 's/-arch x86_64//'`
5722
baf2816d556d Configure: workaround for system perl on OS X (ticket #576).
Maxim Dounin <mdounin@mdounin.ru>
parents: 5145
diff changeset
63 fi
baf2816d556d Configure: workaround for system perl on OS X (ticket #576).
Maxim Dounin <mdounin@mdounin.ru>
parents: 5145
diff changeset
64
6419
39a806ccf21e Dynamic modules: perl.
Ruslan Ermilov <ru@nginx.com>
parents: 6308
diff changeset
65 if [ $USE_PERL = YES ]; then
39a806ccf21e Dynamic modules: perl.
Ruslan Ermilov <ru@nginx.com>
parents: 6308
diff changeset
66 CORE_LINK="$CORE_LINK $ngx_perl_ldopts"
39a806ccf21e Dynamic modules: perl.
Ruslan Ermilov <ru@nginx.com>
parents: 6308
diff changeset
67 fi
39a806ccf21e Dynamic modules: perl.
Ruslan Ermilov <ru@nginx.com>
parents: 6308
diff changeset
68
39a806ccf21e Dynamic modules: perl.
Ruslan Ermilov <ru@nginx.com>
parents: 6308
diff changeset
69 NGX_LIB_PERL="$ngx_perl_ldopts"
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
70
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
71 if test -n "$NGX_PERL_MODULES"; then
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
72 have=NGX_PERL_MODULES value="(u_char *) \"$NGX_PERL_MODULES\""
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
73 . auto/define
950
9581fba9ea12 fix for nginx.pm default installation
Igor Sysoev <igor@sysoev.ru>
parents: 872
diff changeset
74 NGX_PERL_MODULES_MAN=$NGX_PERL_MODULES/man3
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
75 fi
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
76
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
77 else
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
78 echo
6821
30b6f1ff192b Perl: removed special environment handling for the perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6700
diff changeset
79 echo "$0: error: perl 5.8.6 or higher is required"
599
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
80 echo
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
81
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
82 exit 1;
869b6444d234 nginx-0.3.21-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
83 fi