mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 14:42:37 +02:00
tty: fix memory leak in vc_deallocate
commit 211b4d42b7 upstream.
syzbot reported memory leak in tty/vt.
The problem was in VT_DISALLOCATE ioctl cmd.
After allocating unimap with PIO_UNIMAP it wasn't
freed via VT_DISALLOCATE, but vc_cons[currcons].d was
zeroed.
Reported-by: syzbot+bcc922b19ccc64240b42@syzkaller.appspotmail.com
Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20210327214443.21548-1-paskripkin@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
25e9c2c117
commit
b1c953dc85
|
|
@ -1382,6 +1382,7 @@ struct vc_data *vc_deallocate(unsigned int currcons)
|
||||||
atomic_notifier_call_chain(&vt_notifier_list, VT_DEALLOCATE, ¶m);
|
atomic_notifier_call_chain(&vt_notifier_list, VT_DEALLOCATE, ¶m);
|
||||||
vcs_remove_sysfs(currcons);
|
vcs_remove_sysfs(currcons);
|
||||||
visual_deinit(vc);
|
visual_deinit(vc);
|
||||||
|
con_free_unimap(vc);
|
||||||
put_pid(vc->vt_pid);
|
put_pid(vc->vt_pid);
|
||||||
vc_uniscr_set(vc, NULL);
|
vc_uniscr_set(vc, NULL);
|
||||||
kfree(vc->vc_screenbuf);
|
kfree(vc->vc_screenbuf);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user