Skip to content

Commit d69513a

Browse files
committed
Fixed Bug #65564 stack-buffer-overflow in DateTimeZone stuff caught by AddressSanitizer
1 parent 7da6498 commit d69513a

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

NEWS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ PHP NEWS
3636
- Datetime:
3737
. Fixed bug #65554 (createFromFormat broken when weekday name is followed
3838
by some delimiters). (Valentin Logvinskiy, Stas).
39+
. Fixed bug #65564 (stack-buffer-overflow in DateTimeZone stuff caught
40+
by AddressSanitizer). (Remi).
3941

4042
- Openssl:
4143
. Fixed bug #64802 (openssl_x509_parse fails to parse subject properly in

ext/date/php_date.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2113,13 +2113,13 @@ static HashTable *date_object_get_properties(zval *object TSRMLS_DC)
21132113
/* first we add the date and time in ISO format */
21142114
MAKE_STD_ZVAL(zv);
21152115
ZVAL_STRING(zv, date_format("Y-m-d H:i:s", 12, dateobj->time, 1), 0);
2116-
zend_hash_update(props, "date", 5, &zv, sizeof(zval), NULL);
2116+
zend_hash_update(props, "date", 5, &zv, sizeof(zv), NULL);
21172117

21182118
/* then we add the timezone name (or similar) */
21192119
if (dateobj->time->is_localtime) {
21202120
MAKE_STD_ZVAL(zv);
21212121
ZVAL_LONG(zv, dateobj->time->zone_type);
2122-
zend_hash_update(props, "timezone_type", 14, &zv, sizeof(zval), NULL);
2122+
zend_hash_update(props, "timezone_type", 14, &zv, sizeof(zv), NULL);
21232123

21242124
MAKE_STD_ZVAL(zv);
21252125
switch (dateobj->time->zone_type) {
@@ -2142,7 +2142,7 @@ static HashTable *date_object_get_properties(zval *object TSRMLS_DC)
21422142
ZVAL_STRING(zv, dateobj->time->tz_abbr, 1);
21432143
break;
21442144
}
2145-
zend_hash_update(props, "timezone", 9, &zv, sizeof(zval), NULL);
2145+
zend_hash_update(props, "timezone", 9, &zv, sizeof(zv), NULL);
21462146
}
21472147

21482148
return props;
@@ -2265,7 +2265,7 @@ static HashTable *date_object_get_properties_interval(zval *object TSRMLS_DC)
22652265
#define PHP_DATE_INTERVAL_ADD_PROPERTY(n,f) \
22662266
MAKE_STD_ZVAL(zv); \
22672267
ZVAL_LONG(zv, (long)intervalobj->diff->f); \
2268-
zend_hash_update(props, n, strlen(n) + 1, &zv, sizeof(zval), NULL);
2268+
zend_hash_update(props, n, strlen(n) + 1, &zv, sizeof(zv), NULL);
22692269

22702270
PHP_DATE_INTERVAL_ADD_PROPERTY("y", y);
22712271
PHP_DATE_INTERVAL_ADD_PROPERTY("m", m);
@@ -2282,7 +2282,7 @@ static HashTable *date_object_get_properties_interval(zval *object TSRMLS_DC)
22822282
} else {
22832283
MAKE_STD_ZVAL(zv);
22842284
ZVAL_FALSE(zv);
2285-
zend_hash_update(props, "days", 5, &zv, sizeof(zval), NULL);
2285+
zend_hash_update(props, "days", 5, &zv, sizeof(zv), NULL);
22862286
}
22872287
PHP_DATE_INTERVAL_ADD_PROPERTY("special_type", special.type);
22882288
PHP_DATE_INTERVAL_ADD_PROPERTY("special_amount", special.amount);

0 commit comments

Comments
 (0)