diff stream/librtsp/rtsp_session.c @ 22803:4401909aac98

Check buffer size in header dump functions
author rtogni
date Sun, 25 Mar 2007 19:00:39 +0000
parents 7526ff6035c1
children a3f6dc43b585
line wrap: on
line diff
--- a/stream/librtsp/rtsp_session.c	Sun Mar 25 17:38:50 2007 +0000
+++ b/stream/librtsp/rtsp_session.c	Sun Mar 25 19:00:39 2007 +0000
@@ -148,7 +148,17 @@
       mp_msg(MSGT_OPEN, MSGL_V, "smil-over-realrtsp playlist, switching to raw rdt mode\n");
     } else {
     rtsp_session->real_session->header_len =
-      rmff_dump_header (h, (char *) rtsp_session->real_session->header, 1024);
+      rmff_dump_header (h, (char *) rtsp_session->real_session->header, HEADER_SIZE);
+
+      if (rtsp_session->real_session->header_len < 0) {
+        mp_msg (MSGT_OPEN, MSGL_ERR,"rtsp_session: error while dumping RMFF headers, session can not be established.\n");
+        free_real_rtsp_session(rtsp_session->real_session);
+        rtsp_close(rtsp_session->s);
+        free (server);
+        free (mrl_line);
+        free(rtsp_session);
+        return NULL;
+      }
 
     rtsp_session->real_session->recv =
       xbuffer_copyin (rtsp_session->real_session->recv, 0,