[php-src] PR #24258: Make uint32_t to zend_long conversion explicit in unpack()
| From: | ushevchenko | Date: | Sun, 11 Oct 2026 09:50:34 +0000 |
| Subject: | [php-src] PR #24258: Make uint32_t to zend_long conversion explicit in unpack() | ||
| Groups: | php.git-pulls | ||
| Request: | Send a blank email to git-pulls+get-39338@lists.php.net to get a copy of this message | ||
Pull Request: https://github.com/php/php-src/pull/24258
Author: ushevchenko
Fixes #24257
unpack() converts a uint32_t to zend_long implicitly for the
L, N and V formats. On 32-bit builds this conversion is
implementation-defined for values above INT32_MAX. The signed variant (l)
in the same block already uses an explicit cast.
This change makes the conversion explicit. The returned values do not change on any platform, so no
test was added.
The issue was identified by static analysis (Svace) and has not been reproduced at runtime on a
32-bit build.
Found by Linux Verification Center (portal.linuxtesting.ru) with SVACE.