]> granicus.if.org Git - php/commitdiff
Use zend_dval_to_lval() in spl_offset_convert_to_long()
authorNikita Popov <nikita.ppv@gmail.com>
Thu, 27 Aug 2020 12:52:54 +0000 (14:52 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Thu, 27 Aug 2020 12:53:56 +0000 (14:53 +0200)
Avoid fptoi UB and use the standard PHP conversion behavior.

ext/spl/spl_engine.c

index c554e69869f1bce3e6dbd7fd1ab09f16a5770cbf..e052471879a382d36e8bd5d8cdd1bd6752cec928 100644 (file)
@@ -41,7 +41,7 @@ try_again:
                }
                break;
        case IS_DOUBLE:
-               return (zend_long)Z_DVAL_P(offset);
+               return zend_dval_to_lval(Z_DVAL_P(offset));
        case IS_LONG:
                return Z_LVAL_P(offset);
        case IS_FALSE: