From d1e7b4dc6f7dedea721e699827ae41d23d9d0e97 Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 2 Sep 2009 10:55:36 +0000 Subject: Fix possible crashes with invalid SDPs that result in stream descriptions not being initialized. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29626 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/librtsp/rtsp_session.c | 3 ++- stream/realrtsp/real.c | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'stream') diff --git a/stream/librtsp/rtsp_session.c b/stream/librtsp/rtsp_session.c index 72b8a2a607..33c36f15b9 100644 --- a/stream/librtsp/rtsp_session.c +++ b/stream/librtsp/rtsp_session.c @@ -139,7 +139,8 @@ rtsp_session_t *rtsp_session_start(int fd, char **mrl, char *path, char *host, /* we are talking to a real server ... */ rmff_header_t *h=real_setup_and_get_header(rtsp_session->s, bandwidth, user, pass); - if (!h) { + if (!h || !h->streams[0]) { + rmff_free_header(h); /* got an redirect? */ if (rtsp_search_answers(rtsp_session->s, RTSP_OPTIONS_LOCATION)) { diff --git a/stream/realrtsp/real.c b/stream/realrtsp/real.c index 29c88335be..0206833301 100644 --- a/stream/realrtsp/real.c +++ b/stream/realrtsp/real.c @@ -235,6 +235,8 @@ static rmff_header_t *real_parse_sdp(char *data, char **stream_rules, uint32_t b char b[64]; int rulematches[MAX_RULEMATCHES]; + if (!desc->stream[i]) + continue; #ifdef LOG printf("calling asmrp_match with:\n%s\n%u\n", desc->stream[i]->asm_rule_book, bandwidth); #endif -- cgit v1.2.3