Fix string offset signed int UB in jit as well

This commit is contained in:
Nikita Popov 2019-12-20 12:11:07 +01:00
parent ed372541da
commit 2bc0a6e97f

View File

@ -610,7 +610,7 @@ try_string_offset:
offset = Z_LVAL_P(dim);
}
if (UNEXPECTED(Z_STRLEN_P(container) < (size_t)((offset < 0) ? -offset : (offset + 1)))) {
if (UNEXPECTED(Z_STRLEN_P(container) < ((offset < 0) ? -(size_t)offset : ((size_t)offset + 1)))) {
zend_error(E_WARNING, "Uninitialized string offset: " ZEND_LONG_FMT, offset);
ZVAL_EMPTY_STRING(result);
} else {
@ -658,7 +658,7 @@ try_string_offset:
offset = Z_LVAL_P(dim);
}
if (UNEXPECTED(Z_STRLEN_P(container) < (size_t)((offset < 0) ? -offset : (offset + 1)))) {
if (UNEXPECTED(Z_STRLEN_P(container) < ((offset < 0) ? -(size_t)offset : ((size_t)offset + 1)))) {
ZVAL_NULL(result);
} else {
zend_uchar c;