From 9b919885a08d6cf3c68cb1bce992feb43a8fad0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=9C=E9=83=A8=E6=98=8C=E5=B9=B3?= Date: Thu, 10 Oct 2019 00:10:14 +0900 Subject: fix memory corruption in old GCC This typo introduced memory corruption when __builtin_add_overflow is not available but uint128_t is. GCC before 5 are one of such situatins. See also https://rubyci.org/logs/rubyci.s3.amazonaws.com/opensuseleap/ruby-master/log/20191009T120004Z.log.html.gz --- gc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gc.c') diff --git a/gc.c b/gc.c index 7cc3c53d1a..f4292370a0 100644 --- a/gc.c +++ b/gc.c @@ -135,7 +135,7 @@ size_add_overflow(size_t x, size_t y) #elif defined(DSIZE_T) RB_GNUC_EXTENSION DSIZE_T dx = x; - RB_GNUC_EXTENSION DSIZE_T dy = x; + RB_GNUC_EXTENSION DSIZE_T dy = y; RB_GNUC_EXTENSION DSIZE_T dz = dx + dy; p = dz > SIZE_MAX; z = (size_t)dz; -- cgit v1.2.3