V4L/DVB (9878): gspca - vc032x: Fix frame overflow errors with vc0321.
authorHans de Goede <hdegoede@redhat.com>
Thu, 11 Dec 2008 08:02:18 +0000 (05:02 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 30 Dec 2008 11:39:02 +0000 (09:39 -0200)
The vc0321 sends some additional data after sending the complete
frame, we ignore this.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/gspca/vc032x.c

index 8f553bfbac0bd0fe8c4c673b4facadb6ccfe777a..4556348f96e9c527cb7484a05707541d14fa06e9 100644 (file)
@@ -2272,6 +2272,12 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
                                data, len);
                return;
        }
+
+       /* The vc0321 sends some additional data after sending the complete
+        * frame, we ignore this. */
+       if (sd->bridge == BRIDGE_VC0321
+           && len > frame->v4l2_buf.length - (frame->data_end - frame->data))
+               len = frame->v4l2_buf.length - (frame->data_end - frame->data);
        gspca_frame_add(gspca_dev, INTER_PACKET, frame, data, len);
 }