diff -uNr httpd-2.0.47/os/unix/unixd.c httpd-2.0.47-woodchip/os/unix/unixd.c --- httpd-2.0.47/os/unix/unixd.c 2003-05-15 16:28:18.000000000 -0400 +++ httpd-2.0.47-woodchip/os/unix/unixd.c 2003-09-03 22:27:07.000000000 -0400 @@ -243,23 +243,20 @@ AP_DECLARE(void) unixd_pre_config(apr_pool_t *ptemp) { - apr_finfo_t wrapper; + struct stat wrapper; unixd_config.user_name = DEFAULT_USER; unixd_config.user_id = ap_uname2id(DEFAULT_USER); unixd_config.group_id = ap_gname2id(DEFAULT_GROUP); /* Check for suexec */ - unixd_config.suexec_enabled = 0; - if ((apr_stat(&wrapper, SUEXEC_BIN, - APR_FINFO_NORM, ptemp)) != APR_SUCCESS) { - return; - } - - /* XXX - apr_stat is incapable of checking suid bits (grumble) */ - /* if ((wrapper.filetype & S_ISUID) && wrapper.user == 0) { */ + if (stat(SUEXEC_BIN, &wrapper) == 0 && + (wrapper.st_mode & S_ISUID) && wrapper.st_uid == 0) { unixd_config.suexec_enabled = 1; - /* } */ + } else { + unixd_config.suexec_enabled = 0; + } + } diff -uNr httpd-2.0.47/server/Makefile.in httpd-2.0.47-woodchip/server/Makefile.in --- httpd-2.0.47/server/Makefile.in 2003-03-11 10:41:55.000000000 -0500 +++ httpd-2.0.47-woodchip/server/Makefile.in 2003-09-03 22:29:14.000000000 -0400 @@ -70,6 +70,9 @@ # wtf does this have to be explicit???? exports.lo: exports.c +# Needed to allow exports.c to be generated in a parallel build successfully +.NOTPARALLEL: $(top_builddir)/server/exports.c + # Rule to make def file for OS/2 core dll ApacheCoreOS2.def: exports.c export_vars.h $(top_srcdir)/os/$(OS_DIR)/core_header.def cat $(top_srcdir)/os/$(OS_DIR)/core_header.def > $@ diff -uNr httpd-2.0.47/server/config.c httpd-2.0.47-woodchip/server/config.c --- httpd-2.0.47/server/config.c 2003-02-26 23:01:20.000000000 -0500 +++ httpd-2.0.47-woodchip/server/config.c 2003-09-03 22:28:05.000000000 -0400 @@ -1519,6 +1519,7 @@ /* strip out '.' and '..' */ if (strcmp(dirent.name, ".") && strcmp(dirent.name, "..") + && !apr_fnmatch_test(dirent.name) && (!ispatt || apr_fnmatch(pattern, dirent.name, FNM_PERIOD) == APR_SUCCESS)) { diff -uNr httpd-2.0.47/support/apachectl.in httpd-2.0.47-woodchip/support/apachectl.in --- httpd-2.0.47/support/apachectl.in 2003-02-03 12:32:08.000000000 -0500 +++ httpd-2.0.47-woodchip/support/apachectl.in 2003-09-03 22:27:07.000000000 -0400 @@ -28,7 +28,8 @@ # -------------------- -------------------- # # the path to your httpd binary, including options if necessary -HTTPD='@exp_sbindir@/@progname@' +. /etc/conf.d/apache2 +HTTPD="@exp_sbindir@/@progname@ ${APACHE2_OPTS}" # # pick up any necessary environment variables if test -f @exp_bindir@/envvars; then diff -uNr httpd-2.0.47/support/apxs.in httpd-2.0.47-woodchip/support/apxs.in --- httpd-2.0.47/support/apxs.in 2003-05-21 07:39:52.000000000 -0400 +++ httpd-2.0.47-woodchip/support/apxs.in 2003-09-03 22:27:07.000000000 -0400 @@ -237,19 +237,6 @@ ($httpd = $0) =~ s:support/apxs$::; } -unless (-x "$httpd") { - error("$httpd not found or not executable"); - exit 1; -} - -unless (grep /mod_so/, `. $envvars && $httpd -l`) { - error("Sorry, no shared object support for Apache"); - error("available under your platform. Make sure"); - error("the Apache module mod_so is compiled into"); - error("your server binary `$httpd'."); - exit 1; -} - sub get_config_vars{ my ($file, $rh_config) = @_;