diff options
author | Heiko Eißfeldt <heikoi@hexco.de> | 2019-06-12 17:20:25 +0200 |
---|---|---|
committer | Heiko Eißfeldt <heikoi@hexco.de> | 2019-06-12 17:20:25 +0200 |
commit | 1c2ed83960fd79727d0f34b11ee361c37c953923 (patch) | |
tree | f112f5afedbeab2df5cb6a3fdd3d29e44b3cded5 /llvm_mode/split-switches-pass.so.cc | |
parent | bcc0347eefa05275cea221f8baad8abe7e091872 (diff) | |
download | afl++-1c2ed83960fd79727d0f34b11ee361c37c953923.tar.gz |
bugfixes from pbst for laf-intel transformations
Diffstat (limited to 'llvm_mode/split-switches-pass.so.cc')
-rw-r--r-- | llvm_mode/split-switches-pass.so.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm_mode/split-switches-pass.so.cc b/llvm_mode/split-switches-pass.so.cc index 8d4db292..bed39bc3 100644 --- a/llvm_mode/split-switches-pass.so.cc +++ b/llvm_mode/split-switches-pass.so.cc @@ -259,7 +259,9 @@ bool SplitSwitchesTransform::splitSwitches(Module &M) { #else Cases.push_back(CaseExpr(i->getCaseValue(), i->getCaseSuccessor())); #endif - std::vector<bool> bytesChecked(Cases[0].Val->getBitWidth() / 8, false); + /* bugfix thanks to pbst + * round up bytesChecked (in case getBitWidth() % 8 != 0) */ + std::vector<bool> bytesChecked((7 + Cases[0].Val->getBitWidth()) / 8, false); BasicBlock* SwitchBlock = switchConvert(Cases, bytesChecked, OrigBlock, NewDefault, Val, 0); /* Branch to our shiny new if-then stuff... */ |