From: "usa (Usaku NAKAMURA)" Date: 2012-12-21T22:17:40+09:00 Subject: [ruby-core:51037] [ruby-trunk - Bug #7371][Assigned] Fix undefined overflow checking in bigdecimal Issue #7371 has been updated by usa (Usaku NAKAMURA). Status changed from Open to Assigned ---------------------------------------- Bug #7371: Fix undefined overflow checking in bigdecimal https://bugs.ruby-lang.org/issues/7371#change-34941 Author: xi (Xi Wang) Status: Assigned Priority: Normal Assignee: mrkn (Kenta Murata) Category: ext Target version: ruby -v: 1.9.x In AddExponent() at ext/bigdecimal/bigdecimal.c:3677, the overflow checks rely on signed integer overflow, which is undefined behavior in C. SIGNED_VALUE m = e+n; SIGNED_VALUE eb, mb; if(e>0) { if(n>0) { mb = m*(SIGNED_VALUE)BASE_FIG; eb = e*(SIGNED_VALUE)BASE_FIG; if(mb