From 42a3c7b05974fa4aef51e2f509a5b3151a272c40 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Tue, 3 Jan 2023 00:24:57 +0300 Subject: [PATCH] filesystem: dir: fix dir entry cache init in case of directory was empty previously --- filesystem/dir.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/filesystem/dir.c b/filesystem/dir.c index b1ff0c69..05b016e6 100644 --- a/filesystem/dir.c +++ b/filesystem/dir.c @@ -210,6 +210,7 @@ static void FS_MergeDirEntries( dir_t *dir, const stringlist_t *list ) } // now we can free old tree and replace it with temporary + // do not add null check there! If we hit it, it's probably a logic error! Mem_Free( dir->entries ); dir->numentries = temp.numentries; dir->entries = temp.entries; @@ -229,7 +230,7 @@ static int FS_MaybeUpdateDirEntries( dir_t *dir, const char *path, const char *e dir->numentries = DIRENTRY_EMPTY_DIRECTORY; ret = -1; } - else if( dir->numentries < 0 ) // not initialized or was empty + else if( dir->numentries <= DIRENTRY_EMPTY_DIRECTORY ) // not initialized or was empty { FS_InitDirEntries( dir, &list ); ret = FS_FindDirEntry( dir, entryname );