# HG changeset patch # User Paul Boddie # Date 1548461058 -3600 # Node ID b1cfb839a60e86227c24d732edaa9f29a9a3e67e # Parent 09e9cede33521c6614979038c9d8dbc095b26b59 Detect overflows beyond the employed integer range for exponentiation. diff -r 09e9cede3352 -r b1cfb839a60e templates/native/int.c --- a/templates/native/int.c Sat Jan 26 00:46:13 2019 +0100 +++ b/templates/native/int.c Sat Jan 26 01:04:18 2019 +0100 @@ -145,6 +145,10 @@ if (errno == ERANGE) __raise_overflow_error(); + if ((k > 0) && (k > __MAXINT)) + __raise_overflow_error(); + if ((k < 0) && (k < __MININT)) + __raise_overflow_error(); /* Return the new integer. */ return __new_int(k);