From: Florian Krohm Date: Thu, 12 Mar 2015 10:21:29 +0000 (+0000) Subject: Fix two undefined behaviours found by ubsan. X-Git-Tag: svn/VALGRIND_3_11_0^2~81 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1e9a2060c3a1bf85c85226267f9a1cf976487af9;p=thirdparty%2Fvalgrind.git Fix two undefined behaviours found by ubsan. Signed integer overflow in multiplication. git-svn-id: svn://svn.valgrind.org/vex/trunk@3101 --- diff --git a/VEX/priv/guest_amd64_helpers.c b/VEX/priv/guest_amd64_helpers.c index b45a235972..2887b08958 100644 --- a/VEX/priv/guest_amd64_helpers.c +++ b/VEX/priv/guest_amd64_helpers.c @@ -439,8 +439,8 @@ static inline ULong idULong ( ULong x ) { ULong cf, pf, af, zf, sf, of; \ DATA_STYPE hi; \ DATA_STYPE lo \ - = NARROWtoS( ((DATA_STYPE)CC_DEP1) \ - * ((DATA_STYPE)CC_DEP2) ); \ + = NARROWtoS( ((DATA_S2TYPE)(DATA_STYPE)CC_DEP1) \ + * ((DATA_S2TYPE)(DATA_STYPE)CC_DEP2) ); \ DATA_S2TYPE rr \ = NARROWto2S( \ ((DATA_S2TYPE)((DATA_STYPE)CC_DEP1)) \ diff --git a/VEX/priv/guest_x86_helpers.c b/VEX/priv/guest_x86_helpers.c index ecf6f89549..b4875ee9f9 100644 --- a/VEX/priv/guest_x86_helpers.c +++ b/VEX/priv/guest_x86_helpers.c @@ -397,8 +397,8 @@ static inline ULong idULong ( ULong x ) { UInt cf, pf, af, zf, sf, of; \ DATA_STYPE hi; \ DATA_STYPE lo \ - = NARROWtoS( ((DATA_STYPE)CC_DEP1) \ - * ((DATA_STYPE)CC_DEP2) ); \ + = NARROWtoS( ((DATA_S2TYPE)(DATA_STYPE)CC_DEP1) \ + * ((DATA_S2TYPE)(DATA_STYPE)CC_DEP2) ); \ DATA_S2TYPE rr \ = NARROWto2S( \ ((DATA_S2TYPE)((DATA_STYPE)CC_DEP1)) \