]> granicus.if.org Git - php/commitdiff
fix leaks
authorfoobar <sniper@php.net>
Wed, 23 Nov 2005 15:50:27 +0000 (15:50 +0000)
committerfoobar <sniper@php.net>
Wed, 23 Nov 2005 15:50:27 +0000 (15:50 +0000)
ext/filter/filter.c

index 442ab8c0f3cc99941833e9482201e6404333865c..379284e8fb9e7d76c300f085d3569d6b14a3e2fd 100644 (file)
@@ -376,11 +376,17 @@ static unsigned int php_sapi_filter(int arg, char *var, char **val, unsigned int
                efree(orig_var);
        }
 
-       if (new_val_len && retval) {
-               *new_val_len = Z_STRLEN(new_var);
+       if (retval) {
+               if (new_val_len) {
+                       *new_val_len = Z_STRLEN(new_var);
+               }
                efree(*val);
-               *val = estrndup(Z_STRVAL(new_var), Z_STRLEN(new_var) + 1);
-               zval_dtor(&new_var);
+               if (Z_STRLEN(new_var)) {
+                       *val = estrdup(Z_STRVAL(new_var));
+                       zval_dtor(&new_var);
+               } else {
+                       *val = estrdup("");
+               }
        }
 
        return retval;