summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--src/input/libreal/sdpplin.c8
2 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 0f0d31b61..382b3e7f3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -17,6 +17,8 @@ xine-lib (1.1.4)
Kay. [bug #1603503]
* Fix program termination due to invalid Real Media SDP; reported by Roland
Kay. [bug #1602663]
+ * Fix invalid memory access in Real Media SDP with tailored stream; reported
+ by Roland Kay. [bug #1602631]
xine-lib (1.1.3)
* Security fixes:
diff --git a/src/input/libreal/sdpplin.c b/src/input/libreal/sdpplin.c
index dc83c3ee1..019237243 100644
--- a/src/input/libreal/sdpplin.c
+++ b/src/input/libreal/sdpplin.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: sdpplin.c,v 1.7 2006/12/25 16:12:17 dgp85 Exp $
+ * $Id: sdpplin.c,v 1.8 2006/12/25 16:21:56 dgp85 Exp $
*
* sdp/sdpplin parser.
*
@@ -242,11 +242,17 @@ sdpplin_t *sdpplin_parse(char *data) {
int handled;
int len;
+ desc->stream = NULL;
+
while (data && *data) {
handled=0;
if (filter(data, "m=", &buf)) {
+ if ( ! desc->stream ) {
+ fprintf(stderr, "sdpplin.c: stream identifier found before stream count, skipping.");
+ continue;
+ }
stream=sdpplin_parse_stream(&data);
lprintf("got data for stream id %u\n", stream->stream_id);
desc->stream[stream->stream_id]=stream;