Hello,

we developing CDC/NCM firmware and found that the Linux CDC/NCM is not compliant to the USB CDC/NCM specification. The cause is a Bug in the cdc_ncm.c file. The structure usb_cdc_ncm_ndp_input_size is only allocated but not initialized. The CDC/NCM specification section "6.2.7 SetNtbInputSize" says that the dwNtbInMaxSize field must be at least 2048. But the current implementation leave it 0, because it is not initialized.

I'm not sure if it is also required to initialize the wNtbInMaxDatagrams field because 0 (no limit) is a valid value.


--- linux-3.6-rc4.orig/drivers/net/usb/cdc_ncm.c 2012-09-06 14:05:26.981402153 +0200 +++ linux-3.6-rc4/drivers/net/usb/cdc_ncm.c 2012-09-06 14:11:57.137398615 +0200
@@ -224,6 +224,7 @@
                                err = -ENOMEM;
                                goto size_err;
                        }
+                       ndp_in_sz->dwNtbInMaxSize = cpu_to_le32(ctx->rx_max);

                        err = usb_control_msg(ctx->udev,
                                        usb_sndctrlpipe(ctx->udev, 0),




--
Kind regards,
Frank Hoffmann

Thesycon GmbH
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to