]> granicus.if.org Git - php/commitdiff
nullify param.parameter and avoid destroying it twice
authorAntony Dovgal <tony2001@php.net>
Sat, 27 Jan 2007 21:53:26 +0000 (21:53 +0000)
committerAntony Dovgal <tony2001@php.net>
Sat, 27 Jan 2007 21:53:26 +0000 (21:53 +0000)
ext/pdo/pdo_stmt.c

index 16fed3f4fb50fc41570c72403ba232a843b96e66..4679b39e8c9e3ca18a35e278029c05f3bbd8e1b8 100755 (executable)
@@ -370,6 +370,8 @@ static int really_register_bound_param(struct pdo_bound_param_data *param, pdo_s
                        } else {
                                zend_hash_index_del(hash, pparam->paramno);
                        }
+                       /* param->parameter is freed by hash dtor */
+                       param->parameter = NULL;
                        return 0;
                }
        }
@@ -428,7 +430,9 @@ static PHP_METHOD(PDOStatement, execute)
                        INIT_PZVAL(param.parameter);
 
                        if (!really_register_bound_param(&param, stmt, 1 TSRMLS_CC)) {
-                               zval_ptr_dtor(&param.parameter);
+                               if (param.parameter) {
+                                       zval_ptr_dtor(&param.parameter);
+                               }
                                RETURN_FALSE;
                        }