if (NULL == manager->getFunction(jmptarget))
called_functions.push_back(jmptarget);
} else {
+ if(jmptarget < base_address || jmptarget > base_address + size) {
+ if (MIA->isConditionalBranch(inst)) {
+ LOG4CXX_WARN(logger, "Conditional jump out of the text segment. This should never happen!");
+ } else {
+ LOG4CXX_INFO(logger, "Unconditional jump to PLT. Assuming Tail-Call to some library");
+ current_address += inst_size;
+ continue;
+ }
+ }
current_block->setNextBlock(0, jmptarget);
if (new_blocks.find(jmptarget) == new_blocks.end()) {
BasicBlock * block = manager->newBasicBlock(jmptarget);