]> granicus.if.org Git - php/commitdiff
fix memleak and possible segfault in HTTP fopen wrapper
authorAntony Dovgal <tony2001@php.net>
Tue, 4 Aug 2009 09:24:48 +0000 (09:24 +0000)
committerAntony Dovgal <tony2001@php.net>
Tue, 4 Aug 2009 09:24:48 +0000 (09:24 +0000)
ext/standard/http_fopen_wrapper.c

index 840011edb6aae3190e18ebebb67d88a62537ebe5..ed9185a520c34ae88613808d2e55f6dd4cbbf2c5 100644 (file)
@@ -391,7 +391,10 @@ php_stream *php_stream_url_wrap_http_ex(php_stream_wrapper *wrapper, char *path,
                        }
                        smart_str_0(&tmpstr);
                        /* Remove newlines and spaces from start and end. there's at least one extra \r\n at the end that needs to go. */
-                       tmp = php_trim(tmpstr.c, strlen(tmpstr.c), NULL, 0, NULL, 3 TSRMLS_CC);
+                       if (tmpstr.c) {
+                               tmp = php_trim(tmpstr.c, strlen(tmpstr.c), NULL, 0, NULL, 3 TSRMLS_CC);
+                               smart_str_free(&tmpstr);
+                       }
                }
                if (Z_TYPE_PP(tmpzval) == IS_STRING && Z_STRLEN_PP(tmpzval)) {
                        /* Remove newlines and spaces from start and end php_trim will estrndup() */