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
pull/126/head
Stefano Sabatini 17 years ago
parent 7c1d608ece
commit deaab5fc32
  1. 4
      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);
}

Loading…
Cancel
Save