view auto/os/solaris @ 7604:7aa20af4ac00

Rewrite: fixed segfault with rewritten URI and "alias". The "alias" directive cannot be used in the same location where URI was rewritten. This has been detected in the "rewrite ... break" case, but not when the standalone "break" directive was used. This change also fixes proxy_pass with URI component in a similar case: location /aaa/ { rewrite ^ /xxx/yyy; break; proxy_pass http://localhost:8080/bbb/; } Previously, the "/bbb/yyy" would be sent to a backend instead of "/xxx/yyy". And if location's prefix was longer than the rewritten URI, a segmentation fault might occur.
author Ruslan Ermilov <ru@nginx.com>
date Mon, 16 Dec 2019 15:19:01 +0300
parents e393c0bf53d3
children
line wrap: on
line source


# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.


have=NGX_SOLARIS . auto/have_headers

CORE_INCS="$UNIX_INCS"
CORE_DEPS="$UNIX_DEPS $SOLARIS_DEPS"
CORE_SRCS="$UNIX_SRCS $SOLARIS_SRCS "
CORE_LIBS="$CORE_LIBS -lsocket -lnsl"

NGX_RPATH=YES

# Solaris's make does not support a blank line between target and rules
ngx_spacer=

CC_AUX_FLAGS="$CC_AUX_FLAGS -D_FILE_OFFSET_BITS=64 -lsocket -lnsl"


if [ $ZLIB_ASM != NO ]; then
    echo "$0: error: the --with-zlib-asm=CPU option is not supported"
    echo "on that platform"
    echo

    exit 1
fi


ngx_feature="sendfilev()"
ngx_feature_name="NGX_HAVE_SENDFILE"
ngx_feature_run=no
ngx_feature_incs="#include <sys/sendfile.h>"
ngx_feature_path=
ngx_feature_libs="-lsendfile"
ngx_feature_test="int fd = 1; sendfilevec_t vec[1];
                  size_t sent; ssize_t n;
                  n = sendfilev(fd, vec, 1, &sent);
                  if (n == -1) return 1"
. auto/feature


if [ $ngx_found = yes ]; then
    CORE_SRCS="$CORE_SRCS $SOLARIS_SENDFILEV_SRCS"
    CORE_LIBS="$CORE_LIBS -lsendfile"
fi


ngx_feature="event ports"
ngx_feature_name="NGX_HAVE_EVENTPORT"
ngx_feature_run=no
ngx_feature_incs="#include <port.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="(void) port_create()"
. auto/feature

if [ $ngx_found = yes ]; then
    CORE_SRCS="$CORE_SRCS $EVENTPORT_SRCS"
    EVENT_MODULES="$EVENT_MODULES $EVENTPORT_MODULE"
fi