diff options
author | Eric Wong <normalperson@yhbt.net> | 2008-10-07 21:20:34 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2008-10-07 21:20:34 +0200 |
commit | 0d34815f6cfe1a75467e7c8f9406ff15bcbe10ba (patch) | |
tree | d205636c8092c76ac235c90e51dff19ff3742547 /src | |
parent | 016af692d9b7040ec1cd15c92a70ecb4000003f6 (diff) | |
download | mpd-0d34815f6cfe1a75467e7c8f9406ff15bcbe10ba.tar.gz mpd-0d34815f6cfe1a75467e7c8f9406ff15bcbe10ba.tar.xz mpd-0d34815f6cfe1a75467e7c8f9406ff15bcbe10ba.zip |
Assert if we don't have song or song->url set
song objects cannot exist without a path or URL
Diffstat (limited to '')
-rw-r--r-- | src/directory.c | 4 | ||||
-rw-r--r-- | src/song.c | 10 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/directory.c b/src/directory.c index 8eb18d463..e38a904f0 100644 --- a/src/directory.c +++ b/src/directory.c @@ -298,8 +298,8 @@ removeDeletedFromDirectory(char *path_max_tmp, Directory * directory) for (i = sv->nr; --i >= 0; ) { /* cleaner deletes if we go backwards */ Song *song = sv->base[i]; - if (!song || !*song->url) - continue; /* does this happen?, perhaps assert() */ + assert(song); + assert(*song->url); if (dirname) sprintf(path_max_tmp, "%s/%s", dirname, song->url); diff --git a/src/song.c b/src/song.c index 54e9ea7e0..acc19eb0e 100644 --- a/src/song.c +++ b/src/song.c @@ -31,8 +31,13 @@ Song * song_alloc(const char *url, struct _Directory *parent) { - size_t urllen = strlen(url); - Song *song = xmalloc(sizeof(*song) - sizeof(song->url) + urllen + 1); + size_t urllen; + Song *song; + + assert(url); + urllen = strlen(url); + assert(urllen); + song = xmalloc(sizeof(*song) - sizeof(song->url) + urllen + 1); song->tag = NULL; memcpy(song->url, url, urllen + 1); @@ -44,6 +49,7 @@ song_alloc(const char *url, struct _Directory *parent) Song *newSong(const char *url, Directory * parentDir) { Song *song; + assert(*url); if (strchr(url, '\n')) { DEBUG("newSong: '%s' is not a valid uri\n", url); |