]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
fs: ubifs: Add volume mounted check
authorAlexander Dahl <ada@thorsis.com>
Wed, 3 Jul 2024 10:12:58 +0000 (12:12 +0200)
committerHeiko Schocher <hs@denx.de>
Sat, 10 Aug 2024 09:54:28 +0000 (11:54 +0200)
Safety guard in the U-Boot filesystem glue code, because these functions
are called from different parts of the codebase.  For generic filesystem
handling this should have been checked in blk_get_device_part_str()
already.  Commands from cmd/ubifs.c should also check this before
calling those functions, but you never know?!

Signed-off-by: Alexander Dahl <ada@thorsis.com>
fs/ubifs/ubifs.c

index 6ed9318f7398dc1c4a0acef7ff19ca15573081d1..8b9bf125ab977baa463586fff860b750fc0f23f6 100644 (file)
@@ -621,6 +621,11 @@ int ubifs_ls(const char *filename)
        unsigned long inum;
        int ret = 0;
 
+       if (!ubifs_is_mounted()) {
+               debug("UBIFS not mounted, use ubifsmount to mount volume first!\n");
+               return -1;
+       }
+
        inum = ubifs_findfile(ubifs_sb, (char *)filename);
        if (!inum) {
                ret = -1;
@@ -661,6 +666,11 @@ int ubifs_exists(const char *filename)
 {
        unsigned long inum;
 
+       if (!ubifs_is_mounted()) {
+               debug("UBIFS not mounted, use ubifsmount to mount volume first!\n");
+               return -1;
+       }
+
        inum = ubifs_findfile(ubifs_sb, (char *)filename);
 
        return inum != 0;
@@ -672,6 +682,11 @@ int ubifs_size(const char *filename, loff_t *size)
        struct inode *inode;
        int err = 0;
 
+       if (!ubifs_is_mounted()) {
+               debug("UBIFS not mounted, use ubifsmount to mount volume first!\n");
+               return -1;
+       }
+
        inum = ubifs_findfile(ubifs_sb, (char *)filename);
        if (!inum) {
                err = -1;
@@ -875,6 +890,11 @@ int ubifs_read(const char *filename, void *buf, loff_t offset,
        int count;
        int last_block_size = 0;
 
+       if (!ubifs_is_mounted()) {
+               debug("UBIFS not mounted, use ubifsmount to mount volume first!\n");
+               return -1;
+       }
+
        *actread = 0;
 
        if (offset & (PAGE_SIZE - 1)) {