mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 13:41:51 +00:00
inotify: Fix fsnotify_mark refcount leak in inotify_update_existing_watch()
Commit4d97f7d53d
("inotify: Add flag IN_MASK_CREATE for inotify_add_watch()") forgot to call fsnotify_put_mark() with IN_MASK_CREATE after fsnotify_find_mark() Fixes:4d97f7d53d
("inotify: Add flag IN_MASK_CREATE for inotify_add_watch()") Signed-off-by: ZhangXiaoxu <zhangxiaoxu5@huawei.com> Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
12ad143e1b
commit
62c9d2674b
@ -519,8 +519,10 @@ static int inotify_update_existing_watch(struct fsnotify_group *group,
|
||||
fsn_mark = fsnotify_find_mark(&inode->i_fsnotify_marks, group);
|
||||
if (!fsn_mark)
|
||||
return -ENOENT;
|
||||
else if (create)
|
||||
return -EEXIST;
|
||||
else if (create) {
|
||||
ret = -EEXIST;
|
||||
goto out;
|
||||
}
|
||||
|
||||
i_mark = container_of(fsn_mark, struct inotify_inode_mark, fsn_mark);
|
||||
|
||||
@ -548,6 +550,7 @@ static int inotify_update_existing_watch(struct fsnotify_group *group,
|
||||
/* return the wd */
|
||||
ret = i_mark->wd;
|
||||
|
||||
out:
|
||||
/* match the get from fsnotify_find_mark() */
|
||||
fsnotify_put_mark(fsn_mark);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user