aboutsummaryrefslogtreecommitdiffstats
path: root/libavdevice/v4l2.c
diff options
context:
space:
mode:
authorStefano Sabatini <stefano.sabatini-lala@poste.it>2008-07-15 20:45:42 +0000
committerStefano Sabatini <stefano.sabatini-lala@poste.it>2008-07-15 20:45:42 +0000
commitdeaab5fc32134ea53bff2ab46f95dd493ecf94c1 (patch)
tree0edd14efa91f03fc239d4718e9ed6d51c7231376 /libavdevice/v4l2.c
parent7c1d608ece947c49b1ebbba415fada965cb8960f (diff)
downloadffmpeg-deaab5fc32134ea53bff2ab46f95dd493ecf94c1.tar.gz
Make v4l2_read_header() don't free a stream in case of failure when
reading its header. The stream will be freed later in av_open_input_stream(). Fix a segmentation fault due to a double free on the same pointer. Originally committed as revision 14247 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavdevice/v4l2.c')
-rw-r--r--libavdevice/v4l2.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
index de5bf78ca5..460fdb037e 100644
--- a/libavdevice/v4l2.c
+++ b/libavdevice/v4l2.c
@@ -526,8 +526,6 @@ static int v4l2_read_header(AVFormatContext *s1, AVFormatParameters *ap)
capabilities = 0;
s->fd = device_open(s1, &capabilities);
if (s->fd < 0) {
- av_free(st);
-
return AVERROR(EIO);
}
av_log(s1, AV_LOG_INFO, "[%d]Capabilities: %x\n", s->fd, capabilities);
@@ -553,7 +551,6 @@ static int v4l2_read_header(AVFormatContext *s1, AVFormatParameters *ap)
if (desired_format == 0) {
av_log(s1, AV_LOG_ERROR, "Cannot find a proper format.\n");
close(s->fd);
- av_free(st);
return AVERROR(EIO);
}
@@ -576,7 +573,6 @@ static int v4l2_read_header(AVFormatContext *s1, AVFormatParameters *ap)
}
if (res < 0) {
close(s->fd);
- av_free(st);
return AVERROR(EIO);
}