Mercurial > hg > nginx-quic
annotate auto/cc/msvc @ 5418:6961d52ebc49 stable-1.4
Core: fix misallocation at ngx_crypt_apr1 (ticket #412).
Found by using auth_basic.t from mdounin nginx-tests under valgrind.
==10470== Invalid write of size 1
==10470== at 0x43603D: ngx_crypt_to64 (ngx_crypt.c:168)
==10470== by 0x43648E: ngx_crypt (ngx_crypt.c:153)
==10470== by 0x489D8B: ngx_http_auth_basic_crypt_handler (ngx_http_auth_basic_module.c:297)
==10470== by 0x48A24A: ngx_http_auth_basic_handler (ngx_http_auth_basic_module.c:240)
==10470== by 0x44EAB9: ngx_http_core_access_phase (ngx_http_core_module.c:1121)
==10470== by 0x44A822: ngx_http_core_run_phases (ngx_http_core_module.c:895)
==10470== by 0x44A932: ngx_http_handler (ngx_http_core_module.c:878)
==10470== by 0x455EEF: ngx_http_process_request (ngx_http_request.c:1852)
==10470== by 0x456527: ngx_http_process_request_headers (ngx_http_request.c:1283)
==10470== by 0x456A91: ngx_http_process_request_line (ngx_http_request.c:964)
==10470== by 0x457097: ngx_http_wait_request_handler (ngx_http_request.c:486)
==10470== by 0x4411EE: ngx_epoll_process_events (ngx_epoll_module.c:691)
==10470== Address 0x5866fab is 0 bytes after a block of size 27 alloc'd
==10470== at 0x4A074CD: malloc (vg_replace_malloc.c:236)
==10470== by 0x43B251: ngx_alloc (ngx_alloc.c:22)
==10470== by 0x421B0D: ngx_malloc (ngx_palloc.c:119)
==10470== by 0x421B65: ngx_pnalloc (ngx_palloc.c:147)
==10470== by 0x436368: ngx_crypt (ngx_crypt.c:140)
==10470== by 0x489D8B: ngx_http_auth_basic_crypt_handler (ngx_http_auth_basic_module.c:297)
==10470== by 0x48A24A: ngx_http_auth_basic_handler (ngx_http_auth_basic_module.c:240)
==10470== by 0x44EAB9: ngx_http_core_access_phase (ngx_http_core_module.c:1121)
==10470== by 0x44A822: ngx_http_core_run_phases (ngx_http_core_module.c:895)
==10470== by 0x44A932: ngx_http_handler (ngx_http_core_module.c:878)
==10470== by 0x455EEF: ngx_http_process_request (ngx_http_request.c:1852)
==10470== by 0x456527: ngx_http_process_request_headers (ngx_http_request.c:1283)
==10470==
author | Markus Linnala <Markus.Linnala@cybercom.com> |
---|---|
date | Fri, 20 Sep 2013 17:57:21 +0300 |
parents | 2b71f6535c76 |
children | bfe536716dbf |
rev | line source |
---|---|
455 | 1 |
2 # Copyright (C) Igor Sysoev | |
4412 | 3 # Copyright (C) Nginx, Inc. |
455 | 4 |
5 | |
2630 | 6 # MSVC 6.0 SP2 |
7 # MSVC Toolkit 2003 (7.1) | |
8 # MSVC 2005 Express Edition SP1 (8.0) | |
455 | 9 |
10 # optimizations | |
11 | |
509 | 12 # maximize speed, equivalent to -Og -Oi -Ot -Oy -Ob2 -Gs -GF -Gy |
455 | 13 CFLAGS="$CFLAGS -O2" |
509 | 14 |
455 | 15 # enable global optimization |
509 | 16 #CFLAGS="$CFLAGS -Og" |
455 | 17 # enable intrinsic functions |
509 | 18 #CFLAGS="$CFLAGS -Oi" |
19 | |
20 # disable inline expansion | |
21 #CFLAGS="$CFLAGS -Ob0" | |
22 # explicit inline expansion | |
23 #CFLAGS="$CFLAGS -Ob1" | |
24 # explicit and implicit inline expansion | |
25 #CFLAGS="$CFLAGS -Ob2" | |
26 | |
455 | 27 # enable frame pointer omission |
509 | 28 #CFLAGS="$CFLAGS -Oy" |
455 | 29 # disable stack checking calls |
509 | 30 #CFLAGS="$CFLAGS -Gs" |
31 | |
32 # pools strings as read/write | |
33 #CFLAGS="$CFLAGS -Gf" | |
34 # pools strings as read-only | |
35 #CFLAGS="$CFLAGS -GF" | |
36 | |
455 | 37 |
38 case $CPU in | |
39 pentium) | |
40 # optimize for Pentium and Athlon | |
41 CPU_OPT="-G5" | |
42 ;; | |
43 | |
44 pentiumpro) | |
45 # optimize for Pentium Pro, Pentium II and Pentium III | |
46 CPU_OPT="-G6" | |
47 ;; | |
48 | |
49 pentium4) | |
461 | 50 # optimize for Pentium 4, MSVC 7 |
51 CPU_OPT="-G7" | |
455 | 52 ;; |
53 esac | |
54 | |
2712
41f993457021
OpenSSL building by MSVC and BCC from sources
Igor Sysoev <igor@sysoev.ru>
parents:
2630
diff
changeset
|
55 # __cdecl, default, must be used with OpenSSL, md5 asm, and sha1 asm |
583 | 56 #CPU_OPT="$CPU_OPT -Gd" |
503 | 57 # __stdcall |
58 #CPU_OPT="$CPU_OPT -Gz" | |
59 # __fastcall | |
2712
41f993457021
OpenSSL building by MSVC and BCC from sources
Igor Sysoev <igor@sysoev.ru>
parents:
2630
diff
changeset
|
60 #CPU_OPT="$CPU_OPT -Gr" |
503 | 61 |
62 | |
455 | 63 CFLAGS="$CFLAGS $CPU_OPT" |
64 | |
65 | |
66 # warnings | |
67 | |
68 CFLAGS="$CFLAGS -W4" | |
69 | |
70 # stop on warning | |
71 CFLAGS="$CFLAGS -WX" | |
72 | |
461 | 73 # disable logo |
74 CFLAGS="$CFLAGS -nologo" | |
75 | |
76 # the link flags | |
77 CORE_LINK="$CORE_LINK -link -verbose:lib" | |
78 | |
2630 | 79 # link with libcmt.lib, multithreaded |
80 LIBC="-MT" | |
81 # link with msvcrt.dll | |
82 # however, MSVC Toolkit 2003 has no MSVCRT.LIB | |
83 #LIBC="-MD" | |
455 | 84 |
85 CFLAGS="$CFLAGS $LIBC" | |
86 | |
2725 | 87 CORE_LIBS="$CORE_LIBS kernel32.lib user32.lib" |
88 | |
461 | 89 # Win32 GUI mode application |
2725 | 90 #CORE_LINK="$CORE_LINK -subsystem:windows -entry:mainCRTStartup" |
455 | 91 |
92 # debug | |
2725 | 93 # msvc8 under Wine issues |
94 # Program database manager mismatch; please check your installation | |
1639
7d125a707158
msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents:
1638
diff
changeset
|
95 if [ $NGX_CC_NAME != msvc8 ]; then |
7d125a707158
msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents:
1638
diff
changeset
|
96 CFLAGS="$CFLAGS -Zi" |
7d125a707158
msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents:
1638
diff
changeset
|
97 CORE_LINK="$CORE_LINK -debug" |
7d125a707158
msvc8 compatibility: it can not build with debug under Wine
Igor Sysoev <igor@sysoev.ru>
parents:
1638
diff
changeset
|
98 fi |
455 | 99 |
461 | 100 |
2723
53be1d485af9
add variadic macros support for msvc8
Igor Sysoev <igor@sysoev.ru>
parents:
2712
diff
changeset
|
101 # MSVC 2005 supports C99 variadic macros |
53be1d485af9
add variadic macros support for msvc8
Igor Sysoev <igor@sysoev.ru>
parents:
2712
diff
changeset
|
102 if [ $NGX_CC_NAME = msvc8 ]; then |
53be1d485af9
add variadic macros support for msvc8
Igor Sysoev <igor@sysoev.ru>
parents:
2712
diff
changeset
|
103 have=NGX_HAVE_C99_VARIADIC_MACROS . auto/have |
53be1d485af9
add variadic macros support for msvc8
Igor Sysoev <igor@sysoev.ru>
parents:
2712
diff
changeset
|
104 fi |
53be1d485af9
add variadic macros support for msvc8
Igor Sysoev <igor@sysoev.ru>
parents:
2712
diff
changeset
|
105 |
53be1d485af9
add variadic macros support for msvc8
Igor Sysoev <igor@sysoev.ru>
parents:
2712
diff
changeset
|
106 |
455 | 107 # precompiled headers |
1636
f2cf053d14fb
enable precompiled headers for msvc7,
Igor Sysoev <igor@sysoev.ru>
parents:
653
diff
changeset
|
108 CORE_DEPS="$CORE_DEPS $NGX_OBJS/ngx_config.pch" |
f2cf053d14fb
enable precompiled headers for msvc7,
Igor Sysoev <igor@sysoev.ru>
parents:
653
diff
changeset
|
109 NGX_PCH="$NGX_OBJS/ngx_config.pch" |
f2cf053d14fb
enable precompiled headers for msvc7,
Igor Sysoev <igor@sysoev.ru>
parents:
653
diff
changeset
|
110 NGX_BUILD_PCH="-Ycngx_config.h -Fp$NGX_OBJS/ngx_config.pch" |
f2cf053d14fb
enable precompiled headers for msvc7,
Igor Sysoev <igor@sysoev.ru>
parents:
653
diff
changeset
|
111 NGX_USE_PCH="-Yungx_config.h -Fp$NGX_OBJS/ngx_config.pch" |
461 | 112 |
113 | |
114 # the resource file | |
469 | 115 NGX_RES="$NGX_OBJS/nginx.res" |
461 | 116 NGX_RCC="rc -fo$NGX_RES \$(CORE_INCS) $NGX_WIN32_RC" |
117 CORE_LINK="$NGX_RES $CORE_LINK" | |
118 | |
455 | 119 |
120 ngx_objout="-Fo" | |
121 ngx_binout="-Fe" | |
122 ngx_objext="obj" | |
123 ngx_binext=".exe" | |
124 | |
2825
bb05c0834c8c
remove BMAKE (build make): a cc compiler should use own make
Igor Sysoev <igor@sysoev.ru>
parents:
2725
diff
changeset
|
125 ngx_long_start='@<< |
2896 | 126 ' |
2825
bb05c0834c8c
remove BMAKE (build make): a cc compiler should use own make
Igor Sysoev <igor@sysoev.ru>
parents:
2725
diff
changeset
|
127 ngx_long_end='<<' |
bb05c0834c8c
remove BMAKE (build make): a cc compiler should use own make
Igor Sysoev <igor@sysoev.ru>
parents:
2725
diff
changeset
|
128 ngx_long_regex_cont=' \ |
633 | 129 ' |
2825
bb05c0834c8c
remove BMAKE (build make): a cc compiler should use own make
Igor Sysoev <igor@sysoev.ru>
parents:
2725
diff
changeset
|
130 ngx_long_cont=' |
573 | 131 ' |
633 | 132 |
631 | 133 # MSVC understand / in path |
455 | 134 #ngx_regex_dirsep='\\' |
135 #ngx_dirsep="\\" |