From dc1d28211d268d7f5819091c207124c373a5a105 Mon Sep 17 00:00:00 2001 From: Jens Georg Date: Wed, 15 Mar 2023 20:46:01 +0100 Subject: server: Limit extension detection to files Do not do random extension detection on uris that are not files Fixes #225 --- src/librygel-server/rygel-media-file-item.vala | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/librygel-server/rygel-media-file-item.vala b/src/librygel-server/rygel-media-file-item.vala index c22b62a1..94cc22cf 100644 --- a/src/librygel-server/rygel-media-file-item.vala +++ b/src/librygel-server/rygel-media-file-item.vala @@ -192,13 +192,23 @@ public abstract class Rygel.MediaFileItem : MediaItem { string uri_extension = null; // Use the extension from the source content filename, if it has an // extension - string basename = Path.get_basename (this.get_primary_uri ()); - int dot_index = -1; - if (basename != null) { - dot_index = basename.last_index_of ("."); - if (dot_index > -1) { - uri_extension = basename.substring (dot_index + 1); + + try { + var uri = GLib.Uri.parse (this.get_primary_uri (), UriFlags.NONE); + if (uri.get_scheme () == "file") { + string basename = Path.get_basename (this.get_primary_uri ()); + int dot_index = -1; + if (basename != null) { + dot_index = basename.last_index_of ("."); + if (dot_index > -1) { + uri_extension = basename.substring (dot_index + 1); + } + } + } else { + debug ("Uri is not a file, but %s, skipping extension detection", uri.get_scheme()); } + } catch (Error err) { + debug ("Failed to parse primary uri, skipping extension detection"); } if (uri_extension == null) { -- cgit v1.2.1