view auto/lib/md5/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 MD5_ASM=$MD5_ASM"
        ngx_md5="MD5=\"$MD5\""
    ;;

    owc*)
        ngx_makefile=makefile.owc
        ngx_opt="CPU_OPT=\"$CPU_OPT\""
        ngx_md5=`echo MD5=\"$MD5\" | sed -e "s/\//$ngx_regex_dirsep/g"`
    ;;

    bcc)
        ngx_makefile=makefile.bcc
        ngx_opt="-DCPU_OPT=\"$CPU_OPT\" -DMD5_ASM=$MD5_ASM"
        ngx_md5=`echo \-DMD5=\"$MD5\" | sed -e "s/\//$ngx_regex_dirsep/g"`
    ;;

esac


done=NO


case "$NGX_PLATFORM" in

    win32)
        cat << END                                        >> $NGX_MAKEFILE

`echo "$MD5/md5.lib:	$NGX_MAKEFILE" | sed -e "s/\//$ngx_regex_dirsep/g"`
	\$(MAKE) -f auto/lib/md5/$ngx_makefile $ngx_opt $ngx_md5

END

        done=YES
    ;;

    SunOS:*:i86pc)
        if [ $MD5_ASM = YES ]; then

            cat << END                                        >> $NGX_MAKEFILE

$MD5/libmd5.a:	$NGX_MAKEFILE
	cd $MD5 \\
	&& \$(MAKE) CFLAGS="$MD5_OPT -DSOL -DMD5_ASM -DL_ENDIAN" \\
		CC="\$(CC)" CPP="\$(CPP)" \\
		MD5_ASM_OBJ=asm/mx86-sol.o clean libmd5.a

END

            done=YES
        fi
    ;;

    # FreeBSD: i386
    # Linux: i686

    *:i386 | *:i686)
        if [ $MD5_ASM = YES ]; then

            cat << END                                        >> $NGX_MAKEFILE

$MD5/libmd5.a:	$NGX_MAKEFILE
	cd $MD5 \\
	&& \$(MAKE) CFLAGS="$MD5_OPT -DELF -DMD5_ASM -DL_ENDIAN" \\
		CC="\$(CC)" CPP="\$(CPP)" \\
		MD5_ASM_OBJ=asm/mx86-elf.o clean libmd5.a

END

            done=YES
        fi
    ;;

esac


if [ $done = NO ]; then

    cat << END                                                >> $NGX_MAKEFILE

$MD5/libmd5.a:	$NGX_MAKEFILE
	cd $MD5 \\
	&& \$(MAKE) CFLAGS="$MD5_OPT" \\
		CC="\$(CC)" MD5_ASM_OBJ= clean libmd5.a

END

fi