diff --git a/arch/PowerPC/PPCDisassembler.c b/arch/PowerPC/PPCDisassembler.c index 82940738..f7dc48ba 100644 --- a/arch/PowerPC/PPCDisassembler.c +++ b/arch/PowerPC/PPCDisassembler.c @@ -316,6 +316,8 @@ static DecodeStatus decodeCRBitMOperand(MCInst *Inst, uint64_t Imm, unsigned Zeros = CountTrailingZeros_64(Imm); // assert(Zeros < 8 && "Invalid CR bit value"); + if (Zeros >=8) + return MCDisassembler_Fail; MCOperand_CreateReg0(Inst, CRRegs[7 - Zeros]); return MCDisassembler_Success;