Tomas Bzatek 1f20636
From 5073d2736d6a83de04e749ae5952071da3d1ccbc Mon Sep 17 00:00:00 2001
Tomas Bzatek 1f20636
From: Tomas Bzatek <tbzatek@redhat.com>
Tomas Bzatek 1f20636
Date: Tue, 12 May 2009 15:17:06 +0200
Tomas Bzatek 1f20636
Subject: [PATCH 4/4] CDDA: allow query well-formed filenames only
Tomas Bzatek 1f20636
Tomas Bzatek 1f20636
This will check for ".wav" suffix as long as sscanf()
Tomas Bzatek 1f20636
doesn't care of the rest of the formatting string after
Tomas Bzatek 1f20636
last placeholder. Querying filenames like
Tomas Bzatek 1f20636
"Track 10.nonsense" will now throw an error.
Tomas Bzatek 1f20636
Tomas Bzatek 1f20636
Partially fixes https://bugzilla.redhat.com/show_bug.cgi?id=499266
Tomas Bzatek 1f20636
---
Tomas Bzatek 1f20636
 daemon/gvfsbackendcdda.c |    3 ++-
Tomas Bzatek 1f20636
 1 files changed, 2 insertions(+), 1 deletions(-)
Tomas Bzatek 1f20636
Tomas Bzatek 1f20636
diff --git a/daemon/gvfsbackendcdda.c b/daemon/gvfsbackendcdda.c
Tomas Bzatek 1f20636
index c97aa44..9b30753 100644
Tomas Bzatek 1f20636
--- a/daemon/gvfsbackendcdda.c
Tomas Bzatek 1f20636
+++ b/daemon/gvfsbackendcdda.c
Tomas Bzatek 1f20636
@@ -460,7 +460,8 @@ get_track_num_from_name (GVfsBackendCdda *cdda_backend, const char *filename)
Tomas Bzatek 1f20636
   char *basename;
Tomas Bzatek 1f20636
 
Tomas Bzatek 1f20636
   basename = g_path_get_basename (filename);
Tomas Bzatek 1f20636
-  if (sscanf (basename, "Track %d.wav", &n) == 1)
Tomas Bzatek 1f20636
+  if (sscanf (basename, "Track %d.wav", &n) == 1 &&
Tomas Bzatek 1f20636
+      g_str_has_suffix (basename, ".wav"))
Tomas Bzatek 1f20636
     {
Tomas Bzatek 1f20636
       g_free (basename);
Tomas Bzatek 1f20636
       return n;
Tomas Bzatek 1f20636
-- 
Tomas Bzatek 1f20636
1.6.2.2
Tomas Bzatek 1f20636