mount-points: bail out of loop again when matching mount points
authorTim-Philipp Müller <tim@centricular.com>
Thu, 25 Jan 2018 12:09:03 +0000 (12:09 +0000)
committerTim-Philipp Müller <tim@centricular.com>
Thu, 25 Jan 2018 12:14:33 +0000 (12:14 +0000)
Previous patch led to us iterating the entire sequence. Bail out
of the loop again if we have a match but are moving away from it.

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

gst/rtsp-server/rtsp-mount-points.c

index 77d82ed..858c391 100644 (file)
@@ -277,6 +277,11 @@ gst_rtsp_mount_points_match (GstRTSPMountPoints * mounts,
         data_item_dump (ritem, "new best: ");
       }
       best = iter;
+    } else {
+      /* if have a match and the current item doesn't prefix match the best we
+       * found so far then we're moving away and can bail out of the loop */
+      if (best != NULL && !has_prefix (ritem, g_sequence_get (best)))
+        break;
     }
 
     iter = g_sequence_iter_next (iter);