diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2004-04-22 22:36:14 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2004-04-22 22:36:14 +0000 |
commit | 437c5569264a964045e7a7ce0d13609cb778bdff (patch) | |
tree | e6a82cb641c3ef093e674b6418e4d2728abdc3d4 | |
parent | a007611a4f0b8142d98810f1dadf9337bc4e10ae (diff) | |
download | php-git-437c5569264a964045e7a7ce0d13609cb778bdff.tar.gz |
MFH: Fixed bug #28112 (Empty queries may result in crashes).
-rw-r--r-- | ext/sqlite/sqlite.c | 14 |
1 files changed, 14 insertions, 0 deletions
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); |