mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
rtpdec_asf: Propagate errors from the chained av_open_input_stream
This fixes the crash in issue 2070. Originally committed as revision 24059 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
748db0fcc4
commit
0fca8d24ee
@ -91,8 +91,9 @@ static void init_packetizer(ByteIOContext *pb, uint8_t *buf, int len)
|
|||||||
pb->buf_end = buf + len;
|
pb->buf_end = buf + len;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p)
|
int ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p)
|
||||||
{
|
{
|
||||||
|
int ret = 0;
|
||||||
if (av_strstart(p, "pgmpu:data:application/vnd.ms.wms-hdr.asfv1;base64,", &p)) {
|
if (av_strstart(p, "pgmpu:data:application/vnd.ms.wms-hdr.asfv1;base64,", &p)) {
|
||||||
ByteIOContext pb;
|
ByteIOContext pb;
|
||||||
RTSPState *rt = s->priv_data;
|
RTSPState *rt = s->priv_data;
|
||||||
@ -108,11 +109,14 @@ void ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p)
|
|||||||
av_close_input_stream(rt->asf_ctx);
|
av_close_input_stream(rt->asf_ctx);
|
||||||
rt->asf_ctx = NULL;
|
rt->asf_ctx = NULL;
|
||||||
}
|
}
|
||||||
av_open_input_stream(&rt->asf_ctx, &pb, "", &asf_demuxer, NULL);
|
ret = av_open_input_stream(&rt->asf_ctx, &pb, "", &asf_demuxer, NULL);
|
||||||
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
rt->asf_pb_pos = url_ftell(&pb);
|
rt->asf_pb_pos = url_ftell(&pb);
|
||||||
av_free(buf);
|
av_free(buf);
|
||||||
rt->asf_ctx->pb = NULL;
|
rt->asf_ctx->pb = NULL;
|
||||||
}
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int asfrtp_parse_sdp_line(AVFormatContext *s, int stream_index,
|
static int asfrtp_parse_sdp_line(AVFormatContext *s, int stream_index,
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
*
|
*
|
||||||
* @param s RTSP demux context
|
* @param s RTSP demux context
|
||||||
*/
|
*/
|
||||||
void ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p);
|
int ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handlers for the x-asf-pf payloads (the payload ID for RTP/ASF).
|
* Handlers for the x-asf-pf payloads (the payload ID for RTP/ASF).
|
||||||
|
Loading…
Reference in New Issue
Block a user