]> 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 63478e98179762779512e8705b371848c8767f56..0e598909fa93256bedf9ea1bf71fefda55cf64b9 100644 (file)
@@ -348,7 +348,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() */