]> granicus.if.org Git - php/commitdiff
Fixed bug #53541 (format string bug in ext/phar).
authorIlia Alshanetsky <iliaa@php.net>
Tue, 14 Dec 2010 17:00:36 +0000 (17:00 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Tue, 14 Dec 2010 17:00:36 +0000 (17:00 +0000)
NEWS
ext/phar/stream.c
main/php_streams.h

diff --git a/NEWS b/NEWS
index 2db51c2a218077654a020a547fca9908dfff1189..c38ccd0d81cdd4ddba0b85143d3ae44cd4ca07e3 100644 (file)
--- a/NEWS
+++ b/NEWS
 - PDO PostgreSQL driver:
   . Fixed bug #53517 (segfault in pgsql_stmt_execute() when postgres is down).
     (gyp at balabit dot hu)
+
+- Phar Extension:
+  . Fixed bug #53541 (format string bug in ext/phar).
+    (crrodriguez at opensuse dot org, Ilia)
     
 - SPL extension:
   . Fixed bug #53515 (property_exists incorrect on ArrayObject null and 0
index 1fbbbb1b5412e08d5e90590965076ed127e52e0e..f037fa8fa5e1707acbd4b27142db84779b5d5a84 100644 (file)
@@ -250,7 +250,7 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, char *pat
                if (!*internal_file && (options & STREAM_OPEN_FOR_INCLUDE)) {
                        /* retrieve the stub */
                        if (FAILURE == phar_get_archive(&phar, resource->host, host_len, NULL, 0, NULL TSRMLS_CC)) {
-                               php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "file %s is not a valid phar archive");
+                               php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "file %s is not a valid phar archive", resource->host);
                                efree(internal_file);
                                php_url_free(resource);
                                return NULL;
index 5cc78aa4bf224ed83ecbe82e0b3adbd917338dc4..99f0a0f36c45bd69efde3689aa6649a8f155b6c5 100755 (executable)
@@ -292,7 +292,12 @@ PHPAPI size_t _php_stream_write(php_stream *stream, const char *buf, size_t coun
 #define php_stream_write_string(stream, str)   _php_stream_write(stream, str, strlen(str) TSRMLS_CC)
 #define php_stream_write(stream, buf, count)   _php_stream_write(stream, (buf), (count) TSRMLS_CC)
 
-PHPAPI size_t _php_stream_printf(php_stream *stream TSRMLS_DC, const char *fmt, ...);
+#ifdef ZTS
+PHPAPI size_t _php_stream_printf(php_stream *stream TSRMLS_DC, const char *fmt, ...) PHP_ATTRIBUTE_FORMAT(printf, 3, 4);
+#else
+PHPAPI size_t _php_stream_printf(php_stream *stream TSRMLS_DC, const char *fmt, ...) PHP_ATTRIBUTE_FORMAT(printf, 2, 3);
+#endif
+
 /* php_stream_printf macro & function require TSRMLS_CC */
 #define php_stream_printf _php_stream_printf
 
@@ -548,8 +553,11 @@ PHPAPI char *php_stream_locate_eol(php_stream *stream, char *buf, size_t buf_len
                        php_stream_open_wrapper_ex(Z_STRVAL_PP((zstream)), (mode), (options), (opened), (context)) : NULL
 
 /* pushes an error message onto the stack for a wrapper instance */
-PHPAPI void php_stream_wrapper_log_error(php_stream_wrapper *wrapper, int options TSRMLS_DC, const char *fmt, ...);
-
+#ifdef ZTS
+PHPAPI void php_stream_wrapper_log_error(php_stream_wrapper *wrapper, int options TSRMLS_DC, const char *fmt, ...) PHP_ATTRIBUTE_FORMAT(printf, 4, 5);
+#else
+PHPAPI void php_stream_wrapper_log_error(php_stream_wrapper *wrapper, int options TSRMLS_DC, const char *fmt, ...) PHP_ATTRIBUTE_FORMAT(printf, 3, 4);
+#endif
 
 #define PHP_STREAM_UNCHANGED   0 /* orig stream was seekable anyway */
 #define PHP_STREAM_RELEASED            1 /* newstream should be used; origstream is no longer valid */