From f9070e626aea3cf1f6f48abba15e29b451ac6681 Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Wed, 12 Jul 2006 13:08:38 +0000 Subject: [PATCH] bailout on error and don't try to create fields of unknown type add test --- ext/dbase/dbase.c | 2 ++ ext/dbase/tests/001.phpt | 61 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 ext/dbase/tests/001.phpt diff --git a/ext/dbase/dbase.c b/ext/dbase/dbase.c index a4c6ce2eac..d9fdf36bb0 100644 --- a/ext/dbase/dbase.c +++ b/ext/dbase/dbase.c @@ -713,6 +713,8 @@ PHP_FUNCTION(dbase_create) break; default: php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown field type '%c'", cur_f->db_type); + free_dbf_head(dbh); + RETURN_FALSE; } cur_f->db_foffset = rlen; rlen += cur_f->db_flen; diff --git a/ext/dbase/tests/001.phpt b/ext/dbase/tests/001.phpt new file mode 100644 index 0000000000..51a4488708 --- /dev/null +++ b/ext/dbase/tests/001.phpt @@ -0,0 +1,61 @@ +--TEST-- +dbase_create() tests +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +int(%d) + +Warning: dbase_create(): unknown field type 'E' in %s on line %d +bool(false) + +Warning: dbase_create(): unknown field type '-' in %s on line %d +bool(false) +int(%d) + +Warning: dbase_create(): expected field name as first element of list in field 0 in %s on line %d +bool(false) +int(%d) + +Warning: dbase_create(): Expected array as second parameter in %s on line %d +bool(false) + +Warning: dbase_create(): Expected array as second parameter in %s on line %d +bool(false) +Done -- 2.50.1