]> granicus.if.org Git - php/commitdiff
MFH: fix memleaks in sscanf()
authorAntony Dovgal <tony2001@php.net>
Mon, 19 Jan 2009 14:41:52 +0000 (14:41 +0000)
committerAntony Dovgal <tony2001@php.net>
Mon, 19 Jan 2009 14:41:52 +0000 (14:41 +0000)
ext/standard/scanf.c

index 2c49090a06f4c5346ab988e3b7f350cc0520ffe3..65030e98f65b5b2e969d78d80a81f8dbf4ac80fb 100644 (file)
@@ -1066,9 +1066,9 @@ addToInt:
                                                        break;
                                                } else if (numVars) {
                                                  /* change passed value type to string */
-                                                  current = args[objIndex++];
-                                                  convert_to_string( *current );
-                                                  ZVAL_STRING( *current, buf, 1 );
+                                                       current = args[objIndex++];
+                                                       zval_dtor(*current);
+                                                       ZVAL_STRING( *current, buf, 1 );
                                                } else {
                                                        add_index_string(*return_value, objIndex++, buf, 1);
                                                }
@@ -1077,7 +1077,7 @@ addToInt:
                                                        break;
                                                } else if (numVars) {
                                                        current = args[objIndex++];
-                                                       convert_to_long( *current );
+                                                       zval_dtor(*current);
                                                        Z_LVAL(**current) = value;
                                                } else {
                                                        add_index_long(*return_value, objIndex++, value);
@@ -1182,7 +1182,7 @@ addToFloat:
                                                break;
                                        } else if (numVars) {
                                                current = args[objIndex++];
-                                               convert_to_double( *current );
+                                               zval_dtor(*current);
                                                Z_DVAL_PP( current ) = dvalue;
                                        } else {
                                                add_index_double( *return_value, objIndex++, dvalue );