diff --git a/libr/anal/p/anal_java.c b/libr/anal/p/anal_java.c index a3700b2c65190..c9df3b49c3d55 100644 --- a/libr/anal/p/anal_java.c +++ b/libr/anal/p/anal_java.c @@ -750,7 +750,7 @@ static int java_switch_op(RAnal *anal, RAnalOp *op, ut64 addr, const ut8 *data, } pos += 12; - if (max_val > min_val) { + if (max_val > min_val && ((max_val-min_val)<(UT16_MAX/4))) { //caseop = r_anal_switch_op_add_case(op->switch_op, addr+default_loc, -1, addr+offset); for (cur_case = 0; cur_case <= max_val - min_val; pos+=4, cur_case++) { //ut32 value = (ut32)(UINT (data, pos));