From 437c5569264a964045e7a7ce0d13609cb778bdff Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Thu, 22 Apr 2004 22:36:14 +0000 Subject: MFH: Fixed bug #28112 (Empty queries may result in crashes). --- ext/sqlite/sqlite.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ext/sqlite/sqlite.c b/ext/sqlite/sqlite.c index 798683cc7a..158d3ff996 100644 --- a/ext/sqlite/sqlite.c +++ b/ext/sqlite/sqlite.c @@ -83,6 +83,12 @@ PHP_INI_END() #define DB_FROM_ZVAL(db, zv) ZEND_FETCH_RESOURCE2(db, struct php_sqlite_db *, zv, -1, "sqlite database", le_sqlite_db, le_sqlite_pdb) +#define PHP_SQLITE_EMPTY_QUERY \ + if (!sql_len) { \ + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot execute empty query."); \ + RETURN_FALSE; \ + } + struct php_sqlite_result { struct php_sqlite_db *db; sqlite_vm *vm; @@ -1051,6 +1057,8 @@ PHP_FUNCTION(sqlite_unbuffered_query) DB_FROM_ZVAL(db, &zdb); + PHP_SQLITE_EMPTY_QUERY; + /* avoid doing work if we can */ if (!return_value_used) { db->last_err_code = sqlite_exec(db->db, sql, NULL, NULL, &errtext); @@ -1084,6 +1092,8 @@ PHP_FUNCTION(sqlite_query) } DB_FROM_ZVAL(db, &zdb); + PHP_SQLITE_EMPTY_QUERY; + /* avoid doing work if we can */ if (!return_value_used) { db->last_err_code = sqlite_exec(db->db, sql, NULL, NULL, &errtext); @@ -1297,6 +1307,8 @@ PHP_FUNCTION(sqlite_array_query) } DB_FROM_ZVAL(db, &zdb); + PHP_SQLITE_EMPTY_QUERY; + /* avoid doing work if we can */ if (!return_value_used) { db->last_err_code = sqlite_exec(db->db, sql, NULL, NULL, &errtext); @@ -1400,6 +1412,8 @@ PHP_FUNCTION(sqlite_single_query) } DB_FROM_ZVAL(db, &zdb); + PHP_SQLITE_EMPTY_QUERY; + /* avoid doing work if we can */ if (!return_value_used) { db->last_err_code = sqlite_exec(db->db, sql, NULL, NULL, &errtext); -- cgit v1.2.1