summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Dovgal <tony2001@php.net>2007-02-25 23:16:32 +0000
committerAntony Dovgal <tony2001@php.net>2007-02-25 23:16:32 +0000
commitfa4ee95e2c1123645ac34edf1a425849a9e58d67 (patch)
tree708600eed9dc527f6e7daebea699744878db6dea
parent5a24d1db6cd249a126d5286a6b28724bd080393e (diff)
downloadphp-git-fa4ee95e2c1123645ac34edf1a425849a9e58d67.tar.gz
do not allow db without fields
fix test
-rw-r--r--ext/dbase/dbase.c5
-rw-r--r--ext/dbase/tests/001.phpt3
-rw-r--r--ext/dbase/tests/002.phpt2
3 files changed, 8 insertions, 2 deletions
diff --git a/ext/dbase/dbase.c b/ext/dbase/dbase.c
index b1d19e54f9..27cde27235 100644
--- a/ext/dbase/dbase.c
+++ b/ext/dbase/dbase.c
@@ -604,6 +604,11 @@ PHP_FUNCTION(dbase_create)
num_fields = zend_hash_num_elements(Z_ARRVAL_PP(fields));
+ if (num_fields <= 0) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to create database without fields");
+ RETURN_FALSE;
+ }
+
/* have to use regular malloc() because this gets free()d by
code in the dbase library */
dbh = (dbhead_t *)malloc(sizeof(dbhead_t));
diff --git a/ext/dbase/tests/001.phpt b/ext/dbase/tests/001.phpt
index 3fbb58eb21..a483f5ff77 100644
--- a/ext/dbase/tests/001.phpt
+++ b/ext/dbase/tests/001.phpt
@@ -54,7 +54,8 @@ bool(false)
int(%d)
string(71) "dbase_create(): expected field name as first element of list in field 0"
bool(false)
-int(%d)
+string(56) "dbase_create(): Unable to create database without fields"
+bool(false)
string(67) "Argument 2 passed to dbase_create() must be an array, integer given"
string(50) "dbase_create(): Expected array as second parameter"
bool(false)
diff --git a/ext/dbase/tests/002.phpt b/ext/dbase/tests/002.phpt
index f76be4f263..d5dd5c9e02 100644
--- a/ext/dbase/tests/002.phpt
+++ b/ext/dbase/tests/002.phpt
@@ -35,7 +35,7 @@ var_dump(dbase_open($file, 0));
echo "Done\n";
?>
--EXPECTF--
-Warning: dbase_open(): Invalid access mode -1 %s in %s on line %d
+Warning: dbase_open(): Invalid access mode -1 in %s on line %d
bool(false)
Warning: dbase_open(): Invalid access mode 1000 in %s on line %d