diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2007-08-22 22:40:29 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2007-08-22 22:40:29 +0000 |
commit | f30f2ef73335ba5de31ad4f27643c369c354db61 (patch) | |
tree | 2cbd6a7ea2efad77a4b31c3b8d83348306b9df83 | |
parent | 8ab99847073dd11a46fec83ac16dfd845b1e40df (diff) | |
download | php-git-f30f2ef73335ba5de31ad4f27643c369c354db61.tar.gz |
Fixed bug #42368 (Incorrect error message displayed by pg_escape_string).
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | ext/pgsql/pgsql.c | 38 |
2 files changed, 31 insertions, 11 deletions
@@ -1,8 +1,10 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? Aug 2007, PHP 5.2.4 +- Fixed bug #42368 (Incorrect error message displayed by pg_escape_string). + (Ilia) - Fixed bug #42365 (glob() crashes and/or accepts way too many flags). (Jani) -- Fixed bug #42183 (classmap cause crashr in non-wsdl mode). (Dmitry) +- Fixed bug #42183 (classmap causes crash in non-wsdl mode). (Dmitry) - Fixed bug #42009 (is_a() and is_subclass_of() should NOT call autoload, in the same way as "instanceof" operator). (Dmitry) - Fixed bug #41904 (proc_open(): empty env array should cause empty diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index eadcc1ce14..508011617a 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -3571,11 +3571,20 @@ PHP_FUNCTION(pg_escape_string) int from_len; int id = -1; - if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s", &from, &from_len) == SUCCESS) { - pgsql_link = NULL; - id = PGG(default_link); - } else if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &pgsql_link, &from, &from_len) == FAILURE) { - return; + switch (ZEND_NUM_ARGS()) { + case 1: + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &from, &from_len) == FAILURE) { + return; + } + pgsql_link = NULL; + id = PGG(default_link); + break; + + default: + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &pgsql_link, &from, &from_len) == FAILURE) { + return; + } + break; } to = (char *) safe_emalloc(from_len, 2, 1); @@ -3604,11 +3613,20 @@ PHP_FUNCTION(pg_escape_bytea) #endif zval *pgsql_link; - if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s", &from, &from_len) == SUCCESS) { - pgsql_link = NULL; - id = PGG(default_link); - } else if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &pgsql_link, &from, &from_len) == FAILURE) { - return; + switch (ZEND_NUM_ARGS()) { + case 1: + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &from, &from_len) == FAILURE) { + return; + } + pgsql_link = NULL; + id = PGG(default_link); + break; + + default: + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &pgsql_link, &from, &from_len) == FAILURE) { + return; + } + break; } #ifdef HAVE_PQESCAPE_BYTEA_CONN |