diff options
author | Stefano Sabatini <stefano.sabatini-lala@poste.it> | 2008-07-15 20:45:42 +0000 |
---|---|---|
committer | Stefano Sabatini <stefano.sabatini-lala@poste.it> | 2008-07-15 20:45:42 +0000 |
commit | deaab5fc32134ea53bff2ab46f95dd493ecf94c1 (patch) | |
tree | 0edd14efa91f03fc239d4718e9ed6d51c7231376 /libavdevice | |
parent | 7c1d608ece947c49b1ebbba415fada965cb8960f (diff) | |
download | ffmpeg-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')
-rw-r--r-- | libavdevice/v4l2.c | 4 |
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); } |