diff options
| author | Tony Dinh <[email protected]> | 2025-08-26 12:37:17 -0700 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2025-09-10 10:38:56 -0600 |
| commit | 1f8fd9d37d69ecc269943a273d3bca4c1be2384e (patch) | |
| tree | 5a9a5ba704e553e596affd6ca8c25eff7e4d8622 /fs | |
| parent | 371a76e845504c9ba7ca216b6edfb4ae4ec14e56 (diff) | |
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 <[email protected]>
Reviewed-by: Tom Rini <[email protected]>
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/ext4/ext4_write.c | 4 |
1 files changed, 3 insertions, 1 deletions
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); |
