Commit 8de697eb08b for php.net
commit 8de697eb08b7407c27cea4ecd5b6d3e80803183d
Author: Nora Dossche <7771979+ndossche@users.noreply.github.com>
Date: Fri Sep 18 21:03:28 2026 +0200
Fix OSS-Fuzz #562721806: Use-of-uninitialized-value in zim_Time_Duration___unserialize (#23759)
LVAL cannot be read if the type is still UNDEF. Check initialization to
fix this.
Randomizer doesn't have this because it uses read_property.
diff --git a/ext/date/time_duration.c b/ext/date/time_duration.c
index 914dd0462ef..a9f69db7a3d 100644
--- a/ext/date/time_duration.c
+++ b/ext/date/time_duration.c
@@ -171,6 +171,9 @@ PHP_METHOD(Time_Duration, __unserialize)
zval *seconds = OBJ_PROP_NUM(&duration->std, 0);
zval *nanoseconds = OBJ_PROP_NUM(&duration->std, 1);
zval *negative = OBJ_PROP_NUM(&duration->std, 2);
+ if (Z_ISUNDEF_P(seconds) || Z_ISUNDEF_P(nanoseconds) || Z_ISUNDEF_P(negative)) {
+ goto fail;
+ }
/* Verify that both properties are positive, since the timelib_duration_ctor_static() takes unsigned. */
if (Z_LVAL_P(seconds) < 0 || Z_LVAL_P(nanoseconds) < 0) {