moriyoshi Mon Feb 10 15:11:10 2003 EDT
Modified files:
/php4/main SAPI.c
Log:
Fixed possible buffer overflow in 64bit systems
Index: php4/main/SAPI.c
diff -u php4/main/SAPI.c:1.167 php4/main/SAPI.c:1.168
--- php4/main/SAPI.c:1.167 Mon Feb 10 14:45:34 2003
+++ php4/main/SAPI.c Mon Feb 10 15:11:10 2003
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: SAPI.c,v 1.167 2003/02/10 19:45:34 moriyoshi Exp $ */
+/* $Id: SAPI.c,v 1.168 2003/02/10 20:11:10 moriyoshi Exp $ */
#include <ctype.h>
#include <sys/stat.h>
@@ -619,14 +619,18 @@
0, &result_len, -1 TSRMLS_CC);
if(result_len==ptr_len) {
char *lower_temp =
estrdup(ptr);
- char conv_temp[32];
+ char conv_temp[64];
int conv_len;
php_strtolower(lower_temp,strlen(lower_temp));
/* If there is no realm string
at all, append one */
if(!strstr(lower_temp,"realm")) {
efree(result);
- conv_len =
sprintf(conv_temp," realm=\"%ld\"",myuid);
+ conv_len =
+snprintf(conv_temp, sizeof(conv_temp), " realm=\"%ld\"",myuid);
+ /* some broken
+snprintf() impls may return a negative value on failure */
+ if (conv_len < 0) {
+ conv_len = 0;
+ }
result =
emalloc(ptr_len+conv_len+1);
result_len =
ptr_len+conv_len;
memcpy(result, ptr,
ptr_len);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php