From 96fcaf86c3cb9340015fb475d79ef0a6fcf858ed Mon Sep 17 00:00:00 2001 From: Gabriel Krisman Bertazi Date: Tue, 2 Jul 2019 17:53:22 -0400 Subject: [PATCH] ext4: fix coverity warning on error path of filename setup Fix the following coverity warning reported by Dan Carpenter: fs/ext4/namei.c:1311 ext4_fname_setup_ci_filename() warn: 'cf_name->len' unsigned <= 0 Fixes: 3ae72562ad91 ("ext4: optimize case-insensitive lookups") Signed-off-by: Gabriel Krisman Bertazi Signed-off-by: Theodore Ts'o Reported-by: Dan Carpenter --- fs/ext4/namei.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index c9568fee9e11..129029534075 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -1310,6 +1310,8 @@ int ext4_ci_compare(const struct inode *parent, const struct qstr *name, void ext4_fname_setup_ci_filename(struct inode *dir, const struct qstr *iname, struct fscrypt_str *cf_name) { + int len; + if (!IS_CASEFOLDED(dir)) { cf_name->name = NULL; return; @@ -1319,13 +1321,16 @@ void ext4_fname_setup_ci_filename(struct inode *dir, const struct qstr *iname, if (!cf_name->name) return; - cf_name->len = utf8_casefold(EXT4_SB(dir->i_sb)->s_encoding, - iname, cf_name->name, - EXT4_NAME_LEN); - if (cf_name->len <= 0) { + len = utf8_casefold(EXT4_SB(dir->i_sb)->s_encoding, + iname, cf_name->name, + EXT4_NAME_LEN); + if (len <= 0) { kfree(cf_name->name); cf_name->name = NULL; + return; } + cf_name->len = (unsigned) len; + } #endif -- 2.45.2