chiark / gitweb /
compute_alias() is now also hardened against tracks outside any
authorrjk@greenend.org.uk <>
Sat, 7 Jul 2007 15:10:40 +0000 (16:10 +0100)
committerrjk@greenend.org.uk <>
Sat, 7 Jul 2007 15:10:40 +0000 (16:10 +0100)
collection.  It takes the view that such never have an alias, no
matter what.

server/trackdb.c

index ae3a7e268571b68fa4323b3a035fd91cc88336c8..330f16fbc3e0c87be69df7a1cb1d32636452405f 100644 (file)
@@ -581,9 +581,15 @@ static int compute_alias(char **aliasp,
   const char *s = config->alias, *t, *expansion, *part;
   int c, used_db = 0, slash_prefix, err;
   struct kvp *at;
+  const char *const root = find_track_root(track);
 
+  if(!root) {
+    /* Bodge for tracks with no root */
+    *aliasp = 0;
+    return 0;
+  }
   dynstr_init(&d);
-  dynstr_append_string(&d, find_track_root(track));
+  dynstr_append_string(&d, root);
   while((c = (unsigned char)*s++)) {
     if(c != '{') {
       dynstr_append(&d, c);