[PATCH] ubifs: Fix uninitialized use of err in ubifs_jnl_write_inode()

Nathan Chancellor
2024-11-15T16:12:05Z

Clang warns (or errors with CONFIG_WERROR=y):

fs/ubifs/journal.c:986:20: error: variable 'err' is uninitialized when used here [-Werror,-Wuninitialized]
986 | ubifs_ro_mode(c, err);
| ^~~

Set err to -EPERM before the call to ubifs_ro_mode() and reuse it in the
return statement to resolve the warning.

Fixes: 957e1c4e1779 ("ubifs: ubifs_jnl_write_inode: Only check once for the limitation of xattr count")
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
---
fs/ubifs/journal.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/ubifs/journal.c b/fs/ubifs/journal.c
index 8e98be64237154105cd6f7cb62cf0338ac26d3e9..36ba79fbd2ff80ff3d5c1f0bf965e439d8c55ab2 100644
--- a/fs/ubifs/journal.c
+++ b/fs/ubifs/journal.c
@@ -983,8 +983,9 @@ int ubifs_jnl_write_inode(struct ubifs_info *c, const struct inode *inode)

if (kill_xattrs && ui->xattr_cnt > ubifs_xattr_max_cnt(c)) {
ubifs_err(c, "Cannot delete inode, it has too much xattrs!");
+ err = -EPERM;
ubifs_ro_mode(c, err);
- return -EPERM;
+ return err;
}

/*

---
base-commit: fe051552f5078fa02d593847529a3884305a6ffe
change-id: 20241115-ubifs-fix-uninitialized-err-96ba6a1e756c

Best regards,
--
Nathan Chancellor <nathan@kernel.org>