From: rjk@greenend.org.uk <> Date: Sat, 7 Jul 2007 15:10:40 +0000 (+0100) Subject: compute_alias() is now also hardened against tracks outside any X-Git-Tag: debian-1_5_99dev8~292 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/commitdiff_plain/137e36ed2877b136e5fb0b7f5eead77be4d1ae3f?hp=a8747834bb7d56ef1e57be5404824d6a638ba2d4 compute_alias() is now also hardened against tracks outside any collection. It takes the view that such never have an alias, no matter what. --- diff --git a/server/trackdb.c b/server/trackdb.c index ae3a7e2..330f16f 100644 --- a/server/trackdb.c +++ b/server/trackdb.c @@ -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);