cvs: php-src(PHP_5_3) /ext/phar phar.c
| From: | Dmitry Stogov | Date: | Thu, 17 Jul 2008 14:05:08 +0000 |
| Subject: | cvs: php-src(PHP_5_3) /ext/phar phar.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-51198@lists.php.net to get a copy of this message | ||
dmitry Thu Jul 17 14:05:08 2008 UTC
Modified files: (Branch: PHP_5_3)
/php-src/ext/phar phar.c
Log:
Fixed search on uninitialized data
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/phar.c?r1=1.370.2.33&r2=1.370.2.34&diff_format=u
Index: php-src/ext/phar/phar.c
diff -u php-src/ext/phar/phar.c:1.370.2.33 php-src/ext/phar/phar.c:1.370.2.34
--- php-src/ext/phar/phar.c:1.370.2.33 Thu Jul 17 13:22:32 2008
+++ php-src/ext/phar/phar.c Thu Jul 17 14:05:07 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: phar.c,v 1.370.2.33 2008/07/17 13:22:32 dmitry Exp $ */
+/* $Id: phar.c,v 1.370.2.34 2008/07/17 14:05:07 dmitry Exp $ */
#define PHAR_MAIN 1
#include "phar_internal.h"
@@ -1427,7 +1427,9 @@
const char *c;
int so_far = 0;
- /* this assumes buf_len > search_len */
+ if (buf_len < search_len) {
+ return NULL;
+ }
c = buf - 1;
do {
if (!(c = memchr(c + 1, search[0], buf_len - search_len - so_far))) {
@@ -1579,7 +1581,7 @@
}
}
}
- if ((pos = phar_strnstr(buffer, 1024 + sizeof(token), token, sizeof(token)-1)) != NULL) {
+ if (got > 0 && (pos = phar_strnstr(buffer, got + sizeof(token), token,
sizeof(token)-1)) != NULL) {
halt_offset += (pos - buffer); /* no -tokenlen+tokenlen here */
return phar_parse_pharfile(fp, fname, fname_len, alias, alias_len, halt_offset, pphar,
compression, error TSRMLS_CC);
}
@@ -3412,7 +3414,7 @@
php_info_print_table_header(2, "Phar: PHP Archive support", "enabled");
php_info_print_table_row(2, "Phar EXT version", PHP_PHAR_VERSION);
php_info_print_table_row(2, "Phar API version", PHP_PHAR_API_VERSION);
- php_info_print_table_row(2, "CVS revision", "$Revision: 1.370.2.33 $");
+ php_info_print_table_row(2, "CVS revision", "$Revision: 1.370.2.34 $");
php_info_print_table_row(2, "Phar-based phar archives", "enabled");
php_info_print_table_row(2, "Tar-based phar archives", "enabled");
php_info_print_table_row(2, "ZIP-based phar archives", "enabled");