|
@@ -1177,6 +1177,11 @@ static void mceusb_process_ir_data(struct mceusb_dev *ir, int buf_len)
|
|
|
init_ir_raw_event(&rawir);
|
|
|
rawir.pulse = ((ir->buf_in[i] & MCE_PULSE_BIT) != 0);
|
|
|
rawir.duration = (ir->buf_in[i] & MCE_PULSE_MASK);
|
|
|
+ if (unlikely(!rawir.duration)) {
|
|
|
+ dev_warn(ir->dev, "nonsensical irdata %02x with duration 0",
|
|
|
+ ir->buf_in[i]);
|
|
|
+ break;
|
|
|
+ }
|
|
|
if (rawir.pulse) {
|
|
|
ir->pulse_tunit += rawir.duration;
|
|
|
ir->pulse_count++;
|