db/update/Archive: validate directory names
Fixes assertion failure if the ZIP file contains a path that begins with a slash. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1793
This commit is contained in:
parent
e84db4f411
commit
31dc8b73b7
1
NEWS
1
NEWS
@ -14,6 +14,7 @@ ver 0.24 (not yet released)
|
|||||||
- proxy: require libmpdclient 2.15 or later
|
- proxy: require libmpdclient 2.15 or later
|
||||||
* archive
|
* archive
|
||||||
- add option to disable archive plugins in mpd.conf
|
- add option to disable archive plugins in mpd.conf
|
||||||
|
- zzip: fix crash bug
|
||||||
* input
|
* input
|
||||||
- curl: add "connect_timeout" configuration
|
- curl: add "connect_timeout" configuration
|
||||||
- curl: fix busy loop after connection failed
|
- curl: fix busy loop after connection failed
|
||||||
|
@ -50,6 +50,9 @@ UpdateWalk::UpdateArchiveTree(ArchiveFile &archive, Directory &directory,
|
|||||||
{
|
{
|
||||||
const auto [child_name, rest] = Split(name, '/');
|
const auto [child_name, rest] = Split(name, '/');
|
||||||
if (rest.data() != nullptr) {
|
if (rest.data() != nullptr) {
|
||||||
|
if (!IsAcceptableFilename(child_name))
|
||||||
|
return;
|
||||||
|
|
||||||
//add dir is not there already
|
//add dir is not there already
|
||||||
Directory *subdir = LockMakeChild(directory, child_name);
|
Directory *subdir = LockMakeChild(directory, child_name);
|
||||||
subdir->device = DEVICE_INARCHIVE;
|
subdir->device = DEVICE_INARCHIVE;
|
||||||
|
Loading…
Reference in New Issue
Block a user