From: Jeremy Harris Date: Sun, 15 Sep 2013 15:41:40 +0000 (+0100) Subject: Fix numeric comparisons for 64b. Bug 1385 X-Git-Tag: exim-4_82_RC1~6 X-Git-Url: https://git.exim.org/exim.git/commitdiff_plain/725735cdc6e1fb7a32b23364d75e14557af6de08 Fix numeric comparisons for 64b. Bug 1385 --- diff --git a/src/src/expand.c b/src/src/expand.c index dba047b28..0d8e70295 100644 --- a/src/src/expand.c +++ b/src/src/expand.c @@ -6560,7 +6560,7 @@ else else { while (isspace(*endptr)) endptr++; - if (*endptr == 0) return (int)value; + if (*endptr == 0) return value; } } diff --git a/test/scripts/0000-Basic/0002 b/test/scripts/0000-Basic/0002 index 1ea5c4a48..b924a0934 100644 --- a/test/scripts/0000-Basic/0002 +++ b/test/scripts/0000-Basic/0002 @@ -287,10 +287,12 @@ mask: ${if eq {1}{2}{${mask:invalid}}{NO}} # Numeric overflow # >32b should work, >64b not -4096M ${if >{1}{4096M}{y}{n}} -4096000000 ${if >{1}{4096000000}{y}{n}} -4611686018427387904 ${if >{1}{4611686018427387904} {y}{n}} -46116860184273879040 ${if >{1}{46116860184273879040}{y}{n}} +1 > 2047M ${if >{1}{2047M}{y}{n}} +1 > 2048M ${if >{1}{2048M}{y}{n}} +1 > 4096000000 ${if >{1}{4096000000}{y}{n}} +1 > 4096M ${if >{1}{4096M}{y}{n}} +1 > 4611686018427387904 ${if >{1}{4611686018427387904} {y}{n}} +1 > 46116860184273879040 ${if >{1}{46116860184273879040}{y}{n}} # Conditions diff --git a/test/stdout/0002 b/test/stdout/0002 index 35f1bb99b..1cf6a5b84 100644 --- a/test/stdout/0002 +++ b/test/stdout/0002 @@ -260,9 +260,11 @@ > # Numeric overflow > # >32b should work, >64b not > -> 4096M y -> 4096000000 y -> 4611686018427387904 y +> 1 > 2047M n +> 1 > 2048M n +> 1 > 4096000000 n +> 1 > 4096M n +> 1 > 4611686018427387904 n > Failed: absolute value of integer "46116860184273879040" is too large (overflow) > > # Conditions