+From 003346c450b58a07af9e0061bffb14c287c39be8 Mon Sep 17 00:00:00 2001
+From: Dmitry Stogov <dmitry@zend.com>
+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 b6c8e13..cbc3f24 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;
+ }