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 4a49f75799
commit 8a5b5378e6
2 changed files with 3 additions and 1 deletions

2
NEWS
View File

@@ -1,4 +1,6 @@
ver 0.23.16 (not yet released)
* database
- fix integer overflows with 64-bit inode numbers
* support libfmt 11
* support ICU 76

View File

@@ -153,7 +153,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)