Set proper error if server flags indicate that it doesn't support mmst. This
authorqrtt1 <chingyichan.tw@gmail.com>
Tue, 5 Oct 2010 14:04:46 +0000 (14:04 +0000)
committerRonald S. Bultje <rsbultje@gmail.com>
Tue, 5 Oct 2010 14:04:46 +0000 (14:04 +0000)
prevents a read-after-close-induced segfault later. Fixes issue 2266.

Patch by qrtt1 <chingyichan dot tw gmail com>.

Originally committed as revision 25349 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/mmst.c

index 3d12d82..57cca5d 100644 (file)
@@ -547,8 +547,12 @@ static int mms_open(URLContext *h, const char *uri, int flags)
     err = mms_safe_send_recv(mmst, NULL, SC_PKT_ASF_HEADER);
     if (err)
         goto fail;
-    if((mmst->incoming_flags != 0X08) && (mmst->incoming_flags != 0X0C))
+    if((mmst->incoming_flags != 0X08) && (mmst->incoming_flags != 0X0C)) {
+        av_log(NULL, AV_LOG_ERROR,
+               "The server does not support MMST (try MMSH or RTSP)\n");
+        err = AVERROR_NOFMT;
         goto fail;
+    }
     err = ff_mms_asf_header_parser(mms);
     if (err) {
         dprintf(NULL, "asf header parsed failed!\n");