Page MenuHomeFreeBSD

D53457.id165360.diff
No OneTemporary

D53457.id165360.diff

diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c
--- a/sys/kern/kern_prot.c
+++ b/sys/kern/kern_prot.c
@@ -839,17 +839,30 @@
if (cred_set) {
setsugid(p);
to_free_cred = old_cred;
+#ifdef RACCT
+ racct_proc_ucred_changed(p, old_cred, new_cred);
+#endif
+#ifdef RCTL
+ crhold(new_cred);
+#endif
MPASS(error == 0);
} else
error = EAGAIN;
unlock_finish:
PROC_UNLOCK(p);
+
/*
* Part 3: After releasing the process lock, we perform cleanups and
* finishing operations.
*/
+#ifdef RCTL
+ rctl_proc_ucred_changed(p, new_cred);
+ /* Paired with the crhold() just above (under RCTL). */
+ crfree(new_cred);
+#endif
+
#ifdef MAC
if (mac_set_proc_data != NULL)
mac_set_proc_finish(td, proc_label_set, mac_set_proc_data);

File Metadata

Mime Type
text/plain
Expires
Wed, Mar 4, 4:18 AM (18 h, 52 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29226852
Default Alt Text
D53457.id165360.diff (760 B)

Event Timeline