Skip to content

Signed integer overflow in ext/date/php_date.c #14709

Closed
@YuanchengJiang

Description

@YuanchengJiang

Description

The following code:

<?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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions