From deaab5fc32134ea53bff2ab46f95dd493ecf94c1 Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Tue, 15 Jul 2008 20:45:42 +0000 Subject: [PATCH] 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 --- libavdevice/v4l2.c | 4 ---- 1 file changed, 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); }