|
@@ -323,6 +323,12 @@ static void acm_ctrl_irq(struct urb *urb)
|
|
|
break;
|
|
|
|
|
|
case USB_CDC_NOTIFY_SERIAL_STATE:
|
|
|
+ if (le16_to_cpu(dr->wLength) != 2) {
|
|
|
+ dev_dbg(&acm->control->dev,
|
|
|
+ "%s - malformed serial state\n", __func__);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
newctrl = get_unaligned_le16(data);
|
|
|
|
|
|
if (!acm->clocal && (acm->ctrlin & ~newctrl & ACM_CTRL_DCD)) {
|
|
@@ -359,11 +365,10 @@ static void acm_ctrl_irq(struct urb *urb)
|
|
|
|
|
|
default:
|
|
|
dev_dbg(&acm->control->dev,
|
|
|
- "%s - unknown notification %d received: index %d "
|
|
|
- "len %d data0 %d data1 %d\n",
|
|
|
+ "%s - unknown notification %d received: index %d len %d\n",
|
|
|
__func__,
|
|
|
- dr->bNotificationType, dr->wIndex,
|
|
|
- dr->wLength, data[0], data[1]);
|
|
|
+ dr->bNotificationType, dr->wIndex, dr->wLength);
|
|
|
+
|
|
|
break;
|
|
|
}
|
|
|
exit:
|