Mercurial > hg > nginx-quic
view auto/os/darwin @ 5584:0251f2f1dc93
Disabled redirects to named locations if URI is not set.
If something like "error_page 400 @name" is used in a configuration,
a request could be passed to a named location without URI set, and this
in turn might result in segmentation faults or other bad effects
as most of the code assumes URI is set.
With this change nginx will catch such configuration problems in
ngx_http_named_location() and will stop request processing if URI
is not set, returning 500.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Thu, 27 Feb 2014 20:36:35 +0400 |
parents | 09d7faaef16f |
children | 79b473d5381d |
line wrap: on
line source
# Copyright (C) Igor Sysoev # Copyright (C) Nginx, Inc. have=NGX_DARWIN . auto/have_headers CORE_INCS="$UNIX_INCS" CORE_DEPS="$UNIX_DEPS $DARWIN_DEPS" CORE_SRCS="$UNIX_SRCS $DARWIN_SRCS" ngx_spacer=' ' # kqueue echo " + kqueue found" have=NGX_HAVE_KQUEUE . auto/have have=NGX_HAVE_CLEAR_EVENT . auto/have EVENT_MODULES="$EVENT_MODULES $KQUEUE_MODULE" CORE_SRCS="$CORE_SRCS $KQUEUE_SRCS" EVENT_FOUND=YES NGX_KQUEUE_CHECKED=YES ngx_feature="kqueue's EVFILT_TIMER" ngx_feature_name="NGX_HAVE_TIMER_EVENT" ngx_feature_run=yes ngx_feature_incs="#include <sys/event.h> #include <sys/time.h>" ngx_feature_path= ngx_feature_libs= ngx_feature_test="int kq; struct kevent kev; struct timespec ts; if ((kq = kqueue()) == -1) return 1; kev.ident = 0; kev.filter = EVFILT_TIMER; kev.flags = EV_ADD|EV_ENABLE; kev.fflags = 0; kev.data = 1000; kev.udata = 0; ts.tv_sec = 0; ts.tv_nsec = 0; if (kevent(kq, &kev, 1, &kev, 1, &ts) == -1) return 1; if (kev.flags & EV_ERROR) return 1;" . auto/feature ngx_feature="Darwin 64-bit kqueue millisecond timeout bug" ngx_feature_name=NGX_DARWIN_KEVENT_BUG ngx_feature_run=bug ngx_feature_incs="#include <sys/event.h> #include <sys/time.h>" ngx_feature_path= ngx_feature_libs= ngx_feature_test="int kq; struct kevent kev; struct timespec ts; struct timeval tv, tv0; kq = kqueue(); ts.tv_sec = 0; ts.tv_nsec = 999000000; gettimeofday(&tv, 0); kevent(kq, NULL, 0, &kev, 1, &ts); gettimeofday(&tv0, 0); timersub(&tv0, &tv, &tv); if (tv.tv_sec * 1000000 + tv.tv_usec < 900000) return 1;" . auto/feature # sendfile() CC_AUX_FLAGS="$CC_AUX_FLAGS" ngx_feature="sendfile()" ngx_feature_name="NGX_HAVE_SENDFILE" ngx_feature_run=yes ngx_feature_incs="#include <sys/types.h> #include <sys/socket.h> #include <sys/uio.h> #include <sys/errno.h>" ngx_feature_path= ngx_feature_libs= ngx_feature_test="int s = 0, fd = 1; off_t n; off_t off = 0; n = sendfile(s, fd, off, &n, NULL, 0); if (n == -1 && errno == ENOSYS) return 1" . auto/feature if [ $ngx_found = yes ]; then have=NGX_HAVE_SENDFILE . auto/have CORE_SRCS="$CORE_SRCS $DARWIN_SENDFILE_SRCS" fi ngx_feature="atomic(3)" ngx_feature_name=NGX_DARWIN_ATOMIC ngx_feature_run=no ngx_feature_incs="#include <libkern/OSAtomic.h>" ngx_feature_path= ngx_feature_libs= ngx_feature_test="int32_t lock, n; n = OSAtomicCompareAndSwap32Barrier(0, 1, &lock)" . auto/feature