summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Delaunay <[email protected]>2026-06-09 11:00:41 +0200
committerHeiko Schocher <[email protected]>2026-07-08 11:28:23 +0200
commit4c600f981343ca57cb324c643fec5663d50649e0 (patch)
tree55fafef7299c5a28ae1e2e9bdd05570d33d2d18d
parentee5d46b45ec0c63f8f9dd1e816e0dac3452ccc3d (diff)
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 <[email protected]>
-rw-r--r--fs/ubifs/ubifs.c2
1 files changed, 1 insertions, 1 deletions
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;
}