From: Tony Dinh Date: Tue, 26 Aug 2025 19:37:17 +0000 (-0700) Subject: fs: ext4fs: Add initialization failure recovery path in ext4fs_write X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1f8fd9d37d69ecc269943a273d3bca4c1be2384e;p=thirdparty%2Fu-boot.git fs: ext4fs: Add initialization failure recovery path in ext4fs_write 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 Reviewed-by: Tom Rini --- diff --git a/fs/ext4/ext4_write.c b/fs/ext4/ext4_write.c index dd8ed40f888..5b290f0d80d 100644 --- a/fs/ext4/ext4_write.c +++ b/fs/ext4/ext4_write.c @@ -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);