diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2006-12-01 19:10:59 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2006-12-01 19:10:59 +0000 |
commit | 16c58e611ab983df463da4f08bc77d25f2607314 (patch) | |
tree | 1a996e27ac4ca515e54448f72652296968f64559 | |
parent | 0184d9c8649130d38b6b43bd9604c490661d9bf6 (diff) | |
download | php-git-16c58e611ab983df463da4f08bc77d25f2607314.tar.gz |
MFB: Fixed a possible memory corruption in dbase_open() with invalid open
mode
-rw-r--r-- | ext/dbase/dbase.c | 2 | ||||
-rw-r--r-- | ext/dbase/tests/002.phpt | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/ext/dbase/dbase.c b/ext/dbase/dbase.c index 23fd5eb629..6859ecacec 100644 --- a/ext/dbase/dbase.c +++ b/ext/dbase/dbase.c @@ -136,7 +136,7 @@ PHP_FUNCTION(dbase_open) if (Z_LVAL_PP(options) == 1) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot open %s in write-only mode", Z_STRVAL_PP(dbf_name)); RETURN_FALSE; - } else if (Z_LVAL_PP(options) < 0) { + } else if (Z_LVAL_PP(options) < 0 || Z_LVAL_PP(options) > 3) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid access mode %ld", Z_LVAL_PP(options)); RETURN_FALSE; } diff --git a/ext/dbase/tests/002.phpt b/ext/dbase/tests/002.phpt index 408c87c30b..f76be4f263 100644 --- a/ext/dbase/tests/002.phpt +++ b/ext/dbase/tests/002.phpt @@ -38,7 +38,7 @@ echo "Done\n"; Warning: dbase_open(): Invalid access mode -1 %s in %s on line %d bool(false) -Warning: dbase_open(): unable to open database %s in %s on line %d +Warning: dbase_open(): Invalid access mode 1000 in %s on line %d bool(false) Warning: dbase_open(): unable to open database %s in %s on line %d |