Bug #960: Apache SIGSEGV hang on getallheaders()
| From: | michale at utko dot fee dot vutbr dot cz | Date: | Mon, 30 Nov 1998 12:27:13 +0000 |
| Subject: | Bug #960: Apache SIGSEGV hang on getallheaders() | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-2624@lists.php.net to get a copy of this message | ||
From: michale@utko.fee.vutbr.cz
Operating system: unix using libc
PHP version: 3.0.5
PHP Bug Type: Reproduceable crash
Bug description: Apache SIGSEGV hang on getallheaders()
In case of occurence NULL strings in http headers hangs the Apache version of php3 during
php3_getallheaders function.
This is because add_assoc_string() internal fuction cannot handle NULL pointer strings, the libc
strlen(NULL) function called from add_assoc_string has bad NULL argument.
NULL value in http header is not prohibited value, Apache woks with such headers correctly. NULL
header string generates e.g. mod_html module & patch (module for language encoding, mailto:lampa@fee.vutbr.cz).
There is a patch to correct the problem:
*** apache.c.old Mon Oct 5 02:21:36 1998
--- apache.c Mon Nov 30 11:50:28 1998
***************
*** 217,223 ****
!strncasecmp(tenv[i].key, "authorization", 13))) {
continue;
}
! if (add_assoc_string(return_value, tenv[i].key,tenv[i].val, 1)==FAILURE) {
RETURN_FALSE;
}
}
--- 217,223 ----
!strncasecmp(tenv[i].key, "authorization", 13))) {
continue;
}
! if (add_assoc_string(return_value, tenv[i].key,(tenv[i].val==NULL) ? "" :
tenv[i].val, 1)==FAILURE) {
RETURN_FALSE;
}
}
--
PHP Development Mailing List http://www.php.net/
To unsubscribe send an empty message to php-dev-unsubscribe@lists.php.net
For help: php-dev-help@lists.php.net