This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/media_tree.git tree:

Subject: [media] gspca - main: Check the isoc packet status before its length
Author:  Jean-François Moine <[email protected]>
Date:    Sat Dec 25 13:22:21 2010 -0300

When an error is set for an isochronous packet, the length of the packet
may be null. In this case, the error was not detected and the image
was not discarded as it should be.

Reported-by: Franck Bourdonnec <[email protected]>
Signed-off-by: Jean-François Moine <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>

 drivers/media/video/gspca/gspca.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

---

http://git.linuxtv.org/media_tree.git?a=commitdiff;h=1d818cda15f0f34fdf7cfde6cb7503a280afed2d

diff --git a/drivers/media/video/gspca/gspca.c 
b/drivers/media/video/gspca/gspca.c
index 5a2274b..03381c6 100644
--- a/drivers/media/video/gspca/gspca.c
+++ b/drivers/media/video/gspca/gspca.c
@@ -320,12 +320,6 @@ static void fill_frame(struct gspca_dev *gspca_dev,
        for (i = 0; i < urb->number_of_packets; i++) {
 
                /* check the packet status and length */
-               len = urb->iso_frame_desc[i].actual_length;
-               if (len == 0) {
-                       if (gspca_dev->empty_packet == 0)
-                               gspca_dev->empty_packet = 1;
-                       continue;
-               }
                st = urb->iso_frame_desc[i].status;
                if (st) {
                        err("ISOC data error: [%d] len=%d, status=%d",
@@ -333,6 +327,12 @@ static void fill_frame(struct gspca_dev *gspca_dev,
                        gspca_dev->last_packet_type = DISCARD_PACKET;
                        continue;
                }
+               len = urb->iso_frame_desc[i].actual_length;
+               if (len == 0) {
+                       if (gspca_dev->empty_packet == 0)
+                               gspca_dev->empty_packet = 1;
+                       continue;
+               }
 
                /* let the packet be analyzed by the subdriver */
                PDEBUG(D_PACK, "packet [%d] o:%d l:%d",

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to