From 003346c450b58a07af9e0061bffb14c287c39be8 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Thu, 1 Dec 2016 10:30:02 +0300 Subject: [PATCH] Simpler overflow check --- ext/opcache/zend_accelerator_module.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/ext/opcache/zend_accelerator_module.c b/ext/opcache/zend_accelerator_module.c index b6c8e13fd8cf3..cbc3f24583f1a 100644 --- a/ext/opcache/zend_accelerator_module.c +++ b/ext/opcache/zend_accelerator_module.c @@ -107,8 +107,6 @@ static ZEND_INI_MH(OnUpdateMemoryConsumption) #else char *base = (char *) ts_resource(*((int *) mh_arg2)); #endif - zend_long megabyte, overflow; - double dummy; /* keep the compiler happy */ (void)entry; (void)mh_arg2; (void)mh_arg3; (void)stage; @@ -132,10 +130,10 @@ static ZEND_INI_MH(OnUpdateMemoryConsumption) ini_entry->value = zend_string_init(new_new_value, 1, 1); } - megabyte = 1024 * 1024; - ZEND_SIGNED_MULTIPLY_LONG(memsize, megabyte, *p, dummy, overflow); - if (UNEXPECTED(overflow)) { + if (UNEXPECTED(memsize > ZEND_ULONG_MAX / (1024 * 1024))) { *p = ZEND_ULONG_MAX; + } else { + *p = memsize * (1024 * 1024); } return SUCCESS; }