diff options
author | Stanislav Malyshev <stas@php.net> | 2004-05-16 16:34:27 +0000 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2004-05-16 16:34:27 +0000 |
commit | e145ab54dab48d905e31b4e6e619ba5eb9fb198c (patch) | |
tree | df10e4568be6bd08f669319e76294f8d6c2c43e2 | |
parent | 49a1413f504e503031c11e77b9b64a55f2213932 (diff) | |
download | php-git-e145ab54dab48d905e31b4e6e619ba5eb9fb198c.tar.gz |
attempt to fix double free on failed query
-rw-r--r-- | ext/sqlite/sqlite.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/sqlite/sqlite.c b/ext/sqlite/sqlite.c index 2f87ed90c0..aee838384f 100644 --- a/ext/sqlite/sqlite.c +++ b/ext/sqlite/sqlite.c @@ -1357,7 +1357,10 @@ PHP_FUNCTION(sqlite_array_query) rres = (struct php_sqlite_result *)emalloc(sizeof(*rres)); sqlite_query(db, sql, sql_len, mode, 0, NULL, rres TSRMLS_CC); if (db->last_err_code != SQLITE_OK) { - efree(rres); + if(!rres->vm) { + /* no query happened - it's out responsibility to free it */ + efree(rres); + } RETURN_FALSE; } |