diff options
author | William Felipe Welter <william.welter@4linux.com.br> | 2015-02-07 01:26:12 -0200 |
---|---|---|
committer | William Felipe Welter <william.welter@4linux.com.br> | 2015-02-07 01:26:12 -0200 |
commit | bb3a81c4b482e94354fed40d0f1e1f81afca7437 (patch) | |
tree | 19fe22bc6c82dda13031f3b44869abe57df513c9 /ext/pgsql/pgsql.c | |
parent | b64f1491768426cd9602dc7057a220ef5b5e4cfd (diff) | |
download | php-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.c | 8 |
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; |