From fb8d795b12c50cf7fd2be5243cc7481d56daa7c4 Mon Sep 17 00:00:00 2001 From: Jianglei Nie Date: Fri, 7 Jan 2022 17:21:10 +0800 Subject: [PATCH] Linux: missing unlock & resource leak in error path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fs/jffs2/fs.c中存在mutex_unlock缺失以及资源未释放漏洞,通过添加相关操作修复该漏洞 Signed-off-by: Jianglei Nie --- fs/jffs2/fs.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fs/jffs2/fs.c b/fs/jffs2/fs.c index 8aa7afd..942aaa3 100644 --- a/fs/jffs2/fs.c +++ b/fs/jffs2/fs.c @@ -95,6 +95,9 @@ int jffs2_setattr (struct jffs2_inode *inode, struct IATTR *attr) if (ivalid & CHG_ATIME) { if ((c_uid != inode->i_uid) || (attr->attr_chg_uid != inode->i_uid)) { + jffs2_complete_reservation(c); + jffs2_free_raw_inode(ri); + mutex_unlock(&f->sem); return -EPERM; } else { ri->atime = cpu_to_je32(attr->attr_chg_atime); @@ -105,6 +108,9 @@ int jffs2_setattr (struct jffs2_inode *inode, struct IATTR *attr) if (ivalid & CHG_MTIME) { if ((c_uid != inode->i_uid) || (attr->attr_chg_uid != inode->i_uid)) { + jffs2_complete_reservation(c); + jffs2_free_raw_inode(ri); + mutex_unlock(&f->sem); return -EPERM; } else { ri->mtime = cpu_to_je32(attr->attr_chg_mtime); -- Gitee