aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-03-26 10:37:40 +0000
committerEric Wong <normalperson@yhbt.net>2008-03-26 10:37:40 +0000
commitc9e6201df51dd6063fbdbdacb47cc4b9060597fd (patch)
treef4cb552c77007685086c346018591d47bfa9bcd8
parentc5b524e3762723a200156b79efd58192db320e5b (diff)
downloadmpd-c9e6201df51dd6063fbdbdacb47cc4b9060597fd.tar.gz
mpd-c9e6201df51dd6063fbdbdacb47cc4b9060597fd.tar.xz
mpd-c9e6201df51dd6063fbdbdacb47cc4b9060597fd.zip
fix strtok() related segmentation fault
strtok() may return NULL if the input is an empty string. The playlist parser did not check for that. git-svn-id: https://svn.musicpd.org/mpd/trunk@7200 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-rw-r--r--src/playlist.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/playlist.c b/src/playlist.c
index 60ad75627..1196db703 100644
--- a/src/playlist.c
+++ b/src/playlist.c
@@ -272,7 +272,10 @@ static void loadPlaylistFromStateFile(FILE *fp, char *buffer,
if (!myFgets(buffer, PLAYLIST_BUFFER_SIZE, fp))
state_file_fatal();
while (strcmp(buffer, PLAYLIST_STATE_FILE_PLAYLIST_END)) {
- song = atoi(strtok(buffer, ":"));
+ temp = strtok(buffer, ":");
+ if (temp == NULL)
+ state_file_fatal();
+ song = atoi(temp);
if (!(temp = strtok(NULL, "")))
state_file_fatal();
if (!addToPlaylist(STDERR_FILENO, temp, NULL)