]> git.sesse.net Git - ffmpeg/commitdiff
lavd/v4l2: fix error logic when enumerating standards
authorStefano Sabatini <stefasab@gmail.com>
Sun, 10 Feb 2013 16:46:17 +0000 (17:46 +0100)
committerStefano Sabatini <stefasab@gmail.com>
Sun, 10 Feb 2013 19:59:06 +0000 (20:59 +0100)
Set ret to 0 before enumerating standards in v4l2_set_parameters(), avoid
use of uninitialized variable.

Regression introduced in 60950adc18fe145a235211e75da68ab07123fcaa.

libavdevice/v4l2.c

index 63a3abe2567bf813f947080231ee7aed5084ad38..4c43e377698f150df527f9581175a9733c923769 100644 (file)
@@ -679,13 +679,16 @@ static int v4l2_set_parameters(AVFormatContext *s1)
 
     if (s->standard) {
         if (s->std_id) {
+            ret = 0;
             av_log(s1, AV_LOG_DEBUG, "Setting standard: %s\n", s->standard);
             /* set tv standard */
             for (i = 0; ; i++) {
                 standard.index = i;
-                if (v4l2_ioctl(s->fd, VIDIOC_ENUMSTD, &standard) < 0)
+                if (v4l2_ioctl(s->fd, VIDIOC_ENUMSTD, &standard) < 0) {
                     ret = AVERROR(errno);
-                if (ret < 0 || !av_strcasecmp(standard.name, s->standard))
+                    break;
+                }
+                if (!av_strcasecmp(standard.name, s->standard))
                     break;
             }
             if (ret < 0) {