rtsp-server: Change the logic so we don't pop a NULL context
authorMarcus Prebble <prebble@axis.com>
Wed, 11 Nov 2015 13:58:33 +0000 (14:58 +0100)
committerSebastian Dröge <sebastian@centricular.com>
Wed, 11 Nov 2015 14:58:27 +0000 (15:58 +0100)
When doing a port scan (e.g. with nmap) the call to GST_RTSP_CHECK()
will sometimes fail. This call is made before any context is pushed
resulting in an attempt to pop a NULL context.

https://bugzilla.gnome.org/show_bug.cgi?id=757949

gst/rtsp-server/rtsp-server.c

index 45ae9db..37a3b0f 100644 (file)
@@ -1191,9 +1191,11 @@ gst_rtsp_server_io_func (GSocket * socket, GIOCondition condition,
     manage_client (server, client);
   } else {
     GST_WARNING_OBJECT (server, "received unknown event %08x", condition);
+    goto exit_no_ctx;
   }
 exit:
   gst_rtsp_context_pop_current (&ctx);
+exit_no_ctx:
 
   return G_SOURCE_CONTINUE;
 
@@ -1204,7 +1206,8 @@ accept_failed:
     GST_ERROR_OBJECT (server, "Could not accept client on socket %p: %s",
         socket, str);
     g_free (str);
-    goto exit;
+    /* We haven't pushed the context yet, so just return */
+    goto exit_no_ctx;
   }
 connection_refused:
   {