]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-5.5' into PHP-5.6
authorXinchen Hui <laruence@php.net>
Sat, 14 Feb 2015 14:18:13 +0000 (22:18 +0800)
committerXinchen Hui <laruence@php.net>
Sat, 14 Feb 2015 14:18:13 +0000 (22:18 +0800)
Conflicts:
ext/pgsql/pgsql.c

1  2 
NEWS
ext/pgsql/pgsql.c

diff --cc NEWS
index 28335d957e93a3cc31ade4f6566570bdebf703d0,a0ffd3e08c5466d45a456070b1c48bdbe302014b..c75ad95798729a9df4751fc064be3c252342aa4c
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
    . Fix bug #61285, #68329, #68046, #41631: encrypted streams don't observe
      socket timeouts (Brad Broerman)
  
 -- CGI:
 -  . Fixed bug #69015 (php-cgi's getopt does not see $argv). (Laruence)
 -
 -?? ??? 2015, PHP 5.5.22
+ - pgsql:
+   . Fixed bug #68638 (pg_update() fails to store infinite values).
+     (william dot welter at 4linux dot com dot br, Laruence)
 +?? Feb 2015, PHP 5.6.6
  
  - Core:
    . Removed support for multi-line headers, as the are deprecated by RFC 7230.
index ed7bf0b610e40b170bd570fd3d1b1437e62b0467,2f12fd18291039fa52a9caf79b5958a6bbe245a5..4bc20bc142a7fabbf2ea5a435971e93165e18f6d
@@@ -5966,12 -5600,17 +5963,17 @@@ PHP_PGSQL_API int php_pgsql_convert(PGc
                                switch (Z_TYPE_PP(val)) {
                                        case IS_STRING:
                                                if (Z_STRLEN_PP(val) == 0) {
 -                                                      ZVAL_STRING(new_val, "NULL", 1);
 +                                                      ZVAL_STRINGL(new_val, "NULL", sizeof("NULL")-1, 1);
                                                }
                                                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 TSRMLS_CC) == FAILURE) {
 +                                                      /* better regex? */
 +                                                      if (php_pgsql_convert_match(Z_STRVAL_PP(val), Z_STRLEN_PP(val), "^[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?$", 0 TSRMLS_CC) == FAILURE) {
-                                                               err = 1;
+                                                               if (php_pgsql_convert_match(Z_STRVAL_PP(val), Z_STRLEN_PP(val), "^[+-]{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);
+                                                               }
                                                        }
                                                        else {
                                                                ZVAL_STRING(new_val, Z_STRVAL_PP(val), 1);