summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2004-04-22 22:36:14 +0000
committerIlia Alshanetsky <iliaa@php.net>2004-04-22 22:36:14 +0000
commit437c5569264a964045e7a7ce0d13609cb778bdff (patch)
treee6a82cb641c3ef093e674b6418e4d2728abdc3d4
parenta007611a4f0b8142d98810f1dadf9337bc4e10ae (diff)
downloadphp-git-437c5569264a964045e7a7ce0d13609cb778bdff.tar.gz
MFH: Fixed bug #28112 (Empty queries may result in crashes).
-rw-r--r--ext/sqlite/sqlite.c14
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);