From f0703b6cba655dfc215903d22980d8e39fff0349 Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Sun, 10 Feb 2013 17:46:17 +0100 Subject: lavd/v4l2: fix error logic when enumerating standards Set ret to 0 before enumerating standards in v4l2_set_parameters(), avoid use of uninitialized variable. Regression introduced in 60950adc18fe145a235211e75da68ab07123fcaa. --- libavdevice/v4l2.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'libavdevice/v4l2.c') diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c index 63a3abe256..4c43e37769 100644 --- a/libavdevice/v4l2.c +++ b/libavdevice/v4l2.c @@ -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) { -- cgit v1.2.3