Mercurial > hg > nginx-quic
view auto/lib/sha1/make @ 6271:22ee99422329
HTTP/2: reject self-dependent streams.
Per RFC7540, a stream cannot depend on itself.
Previously, this requirement was enforced on PRIORITY frames, but not on
HEADERS frames and due to the implementation details nginx worker would
crash (stack overflow) while opening self-dependent stream.
Found with afl-fuzz.
Signed-off-by: Piotr Sikora <piotrsikora@google.com>
author | Piotr Sikora <piotrsikora@google.com> |
---|---|
date | Thu, 01 Oct 2015 20:25:55 -0700 |
parents | d620f497c50f |
children | 78f8ac479735 |
line wrap: on
line source
# Copyright (C) Igor Sysoev # Copyright (C) Nginx, Inc. case "$NGX_CC_NAME" in msvc*) ngx_makefile=makefile.msvc ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC SHA1_ASM=$SHA1_ASM" ngx_sha1="SHA1=\"$SHA1\"" ;; owc*) ngx_makefile=makefile.owc ngx_opt="CPU_OPT=\"$CPU_OPT\"" ngx_sha1=`echo SHA1=\"$SHA1\" | sed -e "s/\//$ngx_regex_dirsep/g"` ;; bcc) ngx_makefile=makefile.bcc ngx_opt="-DCPU_OPT=\"$CPU_OPT\" -DSHA1_ASM=$SHA1_ASM" ngx_sha1=`echo \-DSHA1=\"$SHA1\" | sed -e "s/\//$ngx_regex_dirsep/g"` ;; esac done=NO case "$NGX_PLATFORM" in win32) cat << END >> $NGX_MAKEFILE `echo "$SHA1/sha1.lib: $NGX_MAKEFILE" | sed -e "s/\//$ngx_regex_dirsep/g"` \$(MAKE) -f auto/lib/sha1/$ngx_makefile $ngx_opt $ngx_sha1 END done=YES ;; SunOS:*:i86pc) if [ $SHA1_ASM = YES ]; then cat << END >> $NGX_MAKEFILE $SHA1/libsha.a: $NGX_MAKEFILE cd $SHA1 \\ && \$(MAKE) CFLAGS="$SHA1_OPT -DSOL -DSHA1_ASM -DL_ENDIAN" \\ CC="\$(CC)" CPP="\$(CPP)" \\ SHA_ASM_OBJ=asm/sx86-sol.o clean libsha.a END done=YES fi ;; # FreeBSD: i386 # Linux: i686 *:i386 | *:i686) if [ $SHA1_ASM = YES ]; then cat << END >> $NGX_MAKEFILE $SHA1/libsha.a: $NGX_MAKEFILE cd $SHA1 \\ && \$(MAKE) CFLAGS="$SHA1_OPT -DELF -DSHA1_ASM -DL_ENDIAN" \\ CC="\$(CC)" CPP="\$(CPP)" \\ SHA_ASM_OBJ=asm/sx86-elf.o clean libsha.a END done=YES fi ;; esac if [ $done = NO ]; then cat << END >> $NGX_MAKEFILE $SHA1/libsha.a: $NGX_MAKEFILE cd $SHA1 \\ && \$(MAKE) CFLAGS="$SHA1_OPT" \\ CC="\$(CC)" SHA_ASM_OBJ= clean libsha.a END fi