aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKuan-Wei Chiu <visitorckw@gmail.com>2024-06-14 09:44:36 +0800
committerKuan-Wei Chiu <visitorckw@gmail.com>2024-06-14 09:53:57 +0800
commitb5e0fff6b9ee1260fc3753af0e441606cfe853ff (patch)
treef011aa55e32a02090284c7f7a4943e04ce06f64b
parente7da8b9d6bf20b1cac960b1eccf3beac3fbf7901 (diff)
downloadafl++-b5e0fff6b9ee1260fc3753af0e441606cfe853ff.tar.gz
Fix signed integer overflow in radamsa
When UBSan was enabled and 'make test' was executed, the following runtime error was observed: libradamsa.c:26055:29: runtime error: left shift of 16777215 by 8 places cannot be represented in type 'int' This issue was caused by a left shift operation on a signed integer. The fix involved changing the integer literal to an unsigned integer by adding a 'U' suffix, ensuring the left shift operation produces the correct value without overflow. Fixes: 8178f4df ("remove radamsa, add radamsa custom mutator")
-rw-r--r--custom_mutators/radamsa/libradamsa.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/custom_mutators/radamsa/libradamsa.c b/custom_mutators/radamsa/libradamsa.c
index e6838752..1dcf91d8 100644
--- a/custom_mutators/radamsa/libradamsa.c
+++ b/custom_mutators/radamsa/libradamsa.c
@@ -3707,7 +3707,7 @@ typedef intptr_t wdiff;
1024 * 1024 * 8 /* static malloc'd heap size if used as a library */
#define FBITS 24 /* bits in fixnum, on the way to 24 and beyond */
#define FMAX \
- ((1 << FBITS) - 1) /* maximum fixnum (and most negative fixnum) \
+ ((1U << FBITS) - 1) /* maximum fixnum (and most negative fixnum) \
*/
#define MAXOBJ 0xffff /* max words in tuple including header */
#define MAXPAYL \