]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
pgrp: Prevent use after free.
authorKonstantin Belousov <kib@FreeBSD.org>
Thu, 31 Dec 2020 13:44:32 +0000 (15:44 +0200)
committerKonstantin Belousov <kib@FreeBSD.org>
Sun, 10 Jan 2021 02:41:19 +0000 (04:41 +0200)
commitef739c7373d8b3833979ad471b31cb9e215411fd
treeb7b120a59b16b815a47b9eab42948090e285f49f
parente0d83cd3e49f0b9e16bc82ced7bd3b0ef9aa6a71
pgrp: Prevent use after free.

Often, we have a process locked and need to get locked process group.
In this case, because progress group lock is before process lock,
unlocking process allows the group to be freed.  See for instance
tty_wait_background().

Make pgrp structures allocated from nofree zone, and ensure type stability
of the pgrp mutex.

Reviewed by: jilles
Tested by: pho
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D27871
sys/kern/kern_proc.c
sys/kern/kern_prot.c
sys/sys/proc.h