summaryrefslogtreecommitdiff
path: root/ext/pgsql/pgsql.c
diff options
context:
space:
mode:
authorWilliam Felipe Welter <william.welter@4linux.com.br>2015-02-07 01:26:12 -0200
committerWilliam Felipe Welter <william.welter@4linux.com.br>2015-02-07 01:26:12 -0200
commitbb3a81c4b482e94354fed40d0f1e1f81afca7437 (patch)
tree19fe22bc6c82dda13031f3b44869abe57df513c9 /ext/pgsql/pgsql.c
parentb64f1491768426cd9602dc7057a220ef5b5e4cfd (diff)
downloadphp-git-bb3a81c4b482e94354fed40d0f1e1f81afca7437.tar.gz
Fixed bug #68638 pg_update() fails to store infinite values.
Add quotes only if "infinity" values are received.
Diffstat (limited to 'ext/pgsql/pgsql.c')
-rw-r--r--ext/pgsql/pgsql.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c
index e8070acbb2..f4595c7503 100644
--- a/ext/pgsql/pgsql.c
+++ b/ext/pgsql/pgsql.c
@@ -5590,12 +5590,16 @@ PHP_PGSQL_API int php_pgsql_convert(PGconn *pg_link, const char *table_name, con
}
else {
/* FIXME: better regex must be used */
- if (php_pgsql_convert_match(Z_STRVAL_PP(val), Z_STRLEN_PP(val), "^([+-]{0,1}[0-9]+)|([+-]{0,1}[0-9]*[\\.][0-9]+)|([+-]{0,1}[0-9]+[\\.][0-9]*)|([+-]{0,1}(INF)(inity){0,1})$", 1 TSRMLS_CC) == FAILURE) {
+ if (php_pgsql_convert_match(Z_STRVAL_PP(val), Z_STRLEN_PP(val), "^([+-]{0,1}[0-9]+)|([+-]{0,1}[0-9]*[\\.][0-9]+)|([+-]{0,1}[0-9]+[\\.][0-9]*)|([+-]{0,1}(inf)(inity){0,1})$", 1 TSRMLS_CC) == FAILURE) {
err = 1;
}
else {
+
ZVAL_STRING(new_val, Z_STRVAL_PP(val), 1);
- php_pgsql_add_quotes(new_val, 1 TSRMLS_CC);
+ if(php_pgsql_convert_match(Z_STRVAL_PP(val), Z_STRLEN_PP(val), "^([+-]{0,1}(inf)(inity){0,1})$", 1 TSRMLS_CC) == SUCCESS) {
+ php_pgsql_add_quotes(new_val, 1 TSRMLS_CC);
+ }
+
}
}
break;