db/update/Walk:FindAncestorLoop: uint64_t inode & device

Previously, inode numbers were truncated to 32 bits, which could lead
to problems on XFS where inodes are 64 bit; this could lead to bogus
"recursive directory found" errors during database update.

[mk: added commit description and NEWS line]

Closes https://github.com/MusicPlayerDaemon/MPD/issues/2000
This commit is contained in:
Marius Feraru 2024-03-04 13:21:40 +02:00 committed by Max Kellermann
parent 45553c5f61
commit 7b6909f2c0
2 changed files with 2 additions and 1 deletions

1
NEWS
View File

@ -16,6 +16,7 @@ ver 0.24 (not yet released)
- "sticker find" supports sort and window parameter and new sticker compare operators "eq", "lt" and "gt"
* database
- attribute "added" shows when each song was added to the database
- fix integer overflows with 64-bit inode numbers
- proxy: require MPD 0.21 or later
- proxy: require libmpdclient 2.15 or later
* archive

View File

@ -148,7 +148,7 @@ update_directory_stat(Storage &storage, Directory &directory) noexcept
*/
static int
FindAncestorLoop(Storage &storage, Directory *parent,
unsigned inode, unsigned device) noexcept
uint64_t inode, uint64_t device) noexcept
{
#ifndef _WIN32
if (device == 0 && inode == 0)