bpf: Fix bad unlock balance on freeze_mutex
Commitc4c84f6fb2
("bpf: drop unnecessary bpf_capable() check in BPF_MAP_FREEZE command") moved the permissions check outside of the freeze_mutex in the map_freeze() handler. The error paths still jumps to the err_put which tries to unlock the freeze_mutex even though it was not locked in the first place. Fix it. Fixes:c4c84f6fb2
("bpf: drop unnecessary bpf_capable() check in BPF_MAP_FREEZE command") Reported-by: syzbot+8982e75c2878b9ffeac5@syzkaller.appspotmail.com Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
Родитель
4aadd2920b
Коммит
4266f41fea
|
@ -1932,8 +1932,8 @@ static int map_freeze(const union bpf_attr *attr)
|
|||
}
|
||||
|
||||
if (!(map_get_sys_perms(map, f) & FMODE_CAN_WRITE)) {
|
||||
err = -EPERM;
|
||||
goto err_put;
|
||||
fdput(f);
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
mutex_lock(&map->freeze_mutex);
|
||||
|
|
Загрузка…
Ссылка в новой задаче