diff options
author | Erlang/OTP <[email protected]> | 2019-07-02 13:44:00 +0200 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2019-07-02 13:44:00 +0200 |
commit | a555c4c80c38b3e4240a2fcc54d913d0229193cd (patch) | |
tree | e7c7cbf6ccd8b7e58fd6dc490ae2539e5779c344 /erts/emulator/beam/beam_load.c | |
parent | 4319a7f8bc93388ec540e954eb9bb73ea1eec4ef (diff) | |
parent | c14e0eea80911e36fe45839af96bb9593c63bbb6 (diff) | |
download | otp-a555c4c80c38b3e4240a2fcc54d913d0229193cd.tar.gz otp-a555c4c80c38b3e4240a2fcc54d913d0229193cd.tar.bz2 otp-a555c4c80c38b3e4240a2fcc54d913d0229193cd.zip |
Merge branch 'john/erts/lists_subtract_fixes/OTP-15938/OTP-15939' into maint-22
* john/erts/lists_subtract_fixes/OTP-15938/OTP-15939:
erts: Fix integer overflow in loader
erts: Fix integer overflow in list subtraction
Diffstat (limited to 'erts/emulator/beam/beam_load.c')
-rw-r--r-- | erts/emulator/beam/beam_load.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/erts/emulator/beam/beam_load.c b/erts/emulator/beam/beam_load.c index 941c3ebbbe..35f2ea6688 100644 --- a/erts/emulator/beam/beam_load.c +++ b/erts/emulator/beam/beam_load.c @@ -4612,7 +4612,15 @@ typedef struct SortGenOpArg { static int genopargtermcompare(SortGenOpArg* a, SortGenOpArg* b) { - return CMP_TERM(a->term, b->term); + Sint res = CMP_TERM(a->term, b->term); + + if (res < 0) { + return -1; + } else if (res > 0) { + return 1; + } + + return 0; } static int |