diff options
Diffstat (limited to 'ext/dba')
| -rw-r--r-- | ext/dba/dba.c | 4 | ||||
| -rw-r--r-- | ext/dba/tests/dba008.phpt | 25 |
2 files changed, 29 insertions, 0 deletions
diff --git a/ext/dba/dba.c b/ext/dba/dba.c index 126319df6b..23679c065c 100644 --- a/ext/dba/dba.c +++ b/ext/dba/dba.c @@ -36,6 +36,7 @@ #include "php_dba.h" #include "ext/standard/info.h" +#include "ext/standard/php_string.h" #include "php_gdbm.h" #include "php_ndbm.h" @@ -613,6 +614,9 @@ PHP_FUNCTION(dba_fetch) php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Handler %s does not support optional skip parameter", info->hnd->name); } if((val = info->hnd->fetch(info, VALLEN(key), skip, &len TSRMLS_CC)) != NULL) { + if (val && PG(magic_quotes_runtime)) { + val = php_addslashes(val, len, &len, 1 TSRMLS_CC); + } RETURN_STRINGL(val, len, 0); } RETURN_FALSE; diff --git a/ext/dba/tests/dba008.phpt b/ext/dba/tests/dba008.phpt new file mode 100644 index 0000000000..a8bcafe809 --- /dev/null +++ b/ext/dba/tests/dba008.phpt @@ -0,0 +1,25 @@ +--TEST-- +DBA magic_quotes_runtime Test +--SKIPIF-- +<?php + require_once('skipif.inc'); +?> +--FILE-- +<?php + require_once('test.inc'); + echo "database handler: $handler\n"; + if (($db_file=dba_open($db_file, "n", $handler))!==FALSE) { + dba_insert("key1", '"', $db_file); + ini_set('magic_quotes_runtime', 0); + var_dump(dba_fetch("key1", $db_file)); + ini_set('magic_quotes_runtime', 1); + var_dump(dba_fetch("key1", $db_file)); + dba_close($db_file); + } else { + echo "Error creating database\n"; + } +?> +--EXPECTF-- +database handler: %s +string(1) """ +string(2) "\"" |
