diff options
author | Max Kellermann <max@duempel.org> | 2008-10-09 16:22:56 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2008-10-09 16:22:56 +0200 |
commit | 4409c34a8c8b0020df78885ece8b01911413be21 (patch) | |
tree | ea15f4c112fc537a66969316cca3209473bc1131 | |
parent | a79bd723e211c967800f523ecf3b3f886a906d97 (diff) | |
download | mpd-4409c34a8c8b0020df78885ece8b01911413be21.tar.gz mpd-4409c34a8c8b0020df78885ece8b01911413be21.tar.xz mpd-4409c34a8c8b0020df78885ece8b01911413be21.zip |
update: don't sanitize the path again
directory_update_init() has to be called with a path that is already
sanitized. Don't call sanitizePathDup() again in updatePath().
Diffstat (limited to '')
-rw-r--r-- | src/update.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/src/update.c b/src/update.c index b9bc3ffd5..aad40de42 100644 --- a/src/update.c +++ b/src/update.c @@ -373,19 +373,15 @@ addParentPathToDB(const char *utf8path) return directory; } -static enum update_return updatePath(const char *utf8path) +static enum update_return updatePath(const char *path) { struct directory *directory; struct directory *parentDirectory; struct song *song; - char *path = sanitizePathDup(utf8path); time_t mtime; enum update_return ret = UPDATE_RETURN_NOUPDATE; char path_max_tmp[MPD_PATH_MAX]; - if (NULL == path) - return UPDATE_RETURN_ERROR; - /* if path is in the DB try to update it, or else delete it */ if ((directory = db_get_directory(path))) { parentDirectory = directory->parent; @@ -393,13 +389,11 @@ static enum update_return updatePath(const char *utf8path) /* if this update directory is successfull, we are done */ ret = updateDirectory(directory); if (ret != UPDATE_RETURN_ERROR) { - free(path); directory_sort(directory); return ret; } /* we don't want to delete the root directory */ else if (directory == db_get_root()) { - free(path); clear_directory(directory); return UPDATE_RETURN_NOUPDATE; } @@ -413,16 +407,14 @@ static enum update_return updatePath(const char *utf8path) } else if ((song = get_get_song(path))) { parentDirectory = song->parent; if (!parentDirectory->stat - && statDirectory(parentDirectory) < 0) { - free(path); + && statDirectory(parentDirectory) < 0) return UPDATE_RETURN_NOUPDATE; - } + /* if this song update is successful, we are done */ else if (!inodeFoundInParent(parentDirectory->parent, parentDirectory->inode, parentDirectory->device) && isMusic(song_get_url(song, path_max_tmp), &mtime, 0)) { - free(path); if (song->mtime == mtime) return UPDATE_RETURN_NOUPDATE; else if (song_file_update(song)) @@ -457,8 +449,6 @@ static enum update_return updatePath(const char *utf8path) } } - free(path); - return ret; } |