Page MenuHomeFreeBSD

D53457.id165364.diff
No OneTemporary

D53457.id165364.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,32 @@
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
+ if (error == 0) {
+ rctl_proc_ucred_changed(p, new_cred);
+ /* Paired with the crhold() just above on 'cred_set' true. */
+ 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:19 AM (18 h, 54 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29226873
Default Alt Text
D53457.id165364.diff (793 B)

Event Timeline