From: Antony Dovgal Date: Wed, 12 Jul 2006 13:08:38 +0000 (+0000) Subject: bailout on error and don't try to create fields of unknown type X-Git-Tag: php-5.2.0RC1~115 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f9070e626aea3cf1f6f48abba15e29b451ac6681;p=php bailout on error and don't try to create fields of unknown type add test --- 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