From: Patrick Delaunay Date: Tue, 9 Jun 2026 09:00:41 +0000 (+0200) Subject: fs: ubifs: fix ubifs_finddir() result check X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=4c600f981343ca57cb324c643fec5663d50649e0;p=thirdparty%2Fu-boot.git fs: ubifs: fix ubifs_finddir() result check ubifs_finddir() can return a negative error code (-ENOMEM or PTR_ERR(dent)) and returns 1 when the name is found in the directory. Fix the result check accordingly. This fixes file existence detection (for "test -e") when U-Boot uses UBIFS through ops ubifs_exists(). Since this function is also called before other file operations, commands such as "load" could be executed on a non-existing file without reporting an error. Fixes: 0cab29ff467e ("fs: ubifs: Fix and rework error handling in ubifs_finddir") Signed-off-by: Patrick Delaunay --- diff --git a/fs/ubifs/ubifs.c b/fs/ubifs/ubifs.c index 3f2e2037745..59bc7547304 100644 --- a/fs/ubifs/ubifs.c +++ b/fs/ubifs/ubifs.c @@ -544,7 +544,7 @@ static unsigned long ubifs_findfile(struct super_block *sb, char *filename) *(next++) = '\0'; } ret = ubifs_finddir(sb, name, root_inum, &inum); - if (!ret) { + if (ret <= 0) { kfree(buf); return 0; }