diff options
| author | Marcus Boerger <helly@php.net> | 2002-11-22 15:47:48 +0000 |
|---|---|---|
| committer | Marcus Boerger <helly@php.net> | 2002-11-22 15:47:48 +0000 |
| commit | e7d20a0422ab62247834c5c97be022600225d259 (patch) | |
| tree | e243886e73af0e628ac22ca13dd3ee3c4febc254 /ext/dba/dba.c | |
| parent | 81711ba621b0aa6268d63b28cd94f6eaee1f6ff3 (diff) | |
| download | php-git-e7d20a0422ab62247834c5c97be022600225d259.tar.gz | |
Make magic_quotes_runtime work bidirectional for dba
Diffstat (limited to 'ext/dba/dba.c')
| -rw-r--r-- | ext/dba/dba.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/ext/dba/dba.c b/ext/dba/dba.c index 23679c065c..c932e8affe 100644 --- a/ext/dba/dba.c +++ b/ext/dba/dba.c @@ -285,6 +285,8 @@ static void php_dba_update(INTERNAL_FUNCTION_PARAMETERS, int mode) { DBA_ID_PARS; zval **val, **key; + char *v; + int len; if(ac != 3 || zend_get_parameters_ex(ac, &key, &val, &id) != SUCCESS) { WRONG_PARAM_COUNT; @@ -295,8 +297,19 @@ static void php_dba_update(INTERNAL_FUNCTION_PARAMETERS, int mode) DBA_WRITE_CHECK; - if(info->hnd->update(info, VALLEN(key), VALLEN(val), mode TSRMLS_CC) == SUCCESS) - RETURN_TRUE; + if (PG(magic_quotes_runtime)) { + len = Z_STRLEN_PP(val); + v = estrndup(Z_STRVAL_PP(val), len); + php_stripslashes(v, &len TSRMLS_CC); + if(info->hnd->update(info, VALLEN(key), v, len, mode TSRMLS_CC) == SUCCESS) { + efree(v); + RETURN_TRUE; + } + efree(v); + } else { + if(info->hnd->update(info, VALLEN(key), VALLEN(val), mode TSRMLS_CC) == SUCCESS) + RETURN_TRUE; + } RETURN_FALSE; } /* }}} */ |
