[php-src] Issue #14709: Signed integer overflow in ext/date/php_date.c
| From: | YuanchengJiang | Date: | Sat, 29 Jun 2024 01:53:14 +0000 |
| Subject: | [php-src] Issue #14709: Signed integer overflow in ext/date/php_date.c | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-247176@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/14709
Author: YuanchengJiang
### Description
The following code:
```php
<?php
define("MAX_64Bit", 9223372036854775807);
define("MAX_32Bit", 2147483647);
$otherVals = array(0, 1, -1, 7, 9, 65, -44, MAX_32Bit, MAX_64Bit);
foreach ($otherVals as $otherVal) {
foreach($longVals as $longVal) {
}
}
$script1_dataflow = $otherVal;
$start = new DateTime('2018-12-31 00:00:00');
$interval = new DateInterval('P1M');
$period = new DatePeriod($start, $interval, $script1_dataflow);
```
Resulted in this output:
```
/php-src/ext/date/php_date.c:5113:35: runtime error: signed integer overflow: 9223372036854775807 +
1 cannot be represented in type 'long'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /php-src/ext/date/php_date.c:5113:35
```
### PHP Version
PHP 8.4.0-dev
### Operating System
ubuntu 22.04