]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
fs: ext4fs: Add initialization failure recovery path in ext4fs_write
authorTony Dinh <mibodhi@gmail.com>
Tue, 26 Aug 2025 19:37:17 +0000 (12:37 -0700)
committerTom Rini <trini@konsulko.com>
Wed, 10 Sep 2025 16:38:56 +0000 (10:38 -0600)
Don't invoke ext4fs_deinit() in ext4fs_write() if the failure occurs
during initialization. It would result in a crash since ext4fs_init()
has already done that.

Signed-off-by: Tony Dinh <mibodhi@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
fs/ext4/ext4_write.c

index dd8ed40f888326d14499ec1f997e3c460287db1a..5b290f0d80d43a65fc74b4c0c06269f35b7075cf 100644 (file)
@@ -877,7 +877,8 @@ int ext4fs_write(const char *fname, const char *buffer,
 
        if (ext4fs_init() != 0) {
                printf("error in File System init\n");
-               goto fail;
+               /* Skip ext4fs_deinit since ext4fs_init() already done that */
+               goto fail_init;
        }
 
        missing_feat = le32_to_cpu(fs->sb->feature_incompat) & ~EXT4_FEATURE_INCOMPAT_SUPP;
@@ -1050,6 +1051,7 @@ int ext4fs_write(const char *fname, const char *buffer,
        return 0;
 fail:
        ext4fs_deinit();
+fail_init:
        free(inode_buffer);
        free(g_parent_inode);
        free(temp_ptr);