|
Lines 86-92
Link Here
|
| 86 |
p = curp; |
86 |
p = curp; |
| 87 |
else |
87 |
else |
| 88 |
p = pfind(uap->who); |
88 |
p = pfind(uap->who); |
| 89 |
if (p == 0) |
89 |
if (p == 0 || !PRISON_CHECK(curp, p)) |
| 90 |
break; |
90 |
break; |
| 91 |
low = p->p_nice; |
91 |
low = p->p_nice; |
| 92 |
break; |
92 |
break; |
|
Lines 98-103
Link Here
|
| 98 |
pg = curp->p_pgrp; |
98 |
pg = curp->p_pgrp; |
| 99 |
else if ((pg = pgfind(uap->who)) == NULL) |
99 |
else if ((pg = pgfind(uap->who)) == NULL) |
| 100 |
break; |
100 |
break; |
|
|
101 |
if (!PRISON_CHECK(curp, LIST_FIRST(&pg->pg_members))) |
| 102 |
break; |
| 101 |
LIST_FOREACH(p, &pg->pg_members, p_pglist) { |
103 |
LIST_FOREACH(p, &pg->pg_members, p_pglist) { |
| 102 |
if (p->p_nice < low) |
104 |
if (p->p_nice < low) |
| 103 |
low = p->p_nice; |
105 |
low = p->p_nice; |
|
Lines 110-116
Link Here
|
| 110 |
uap->who = curp->p_ucred->cr_uid; |
112 |
uap->who = curp->p_ucred->cr_uid; |
| 111 |
LIST_FOREACH(p, &allproc, p_list) |
113 |
LIST_FOREACH(p, &allproc, p_list) |
| 112 |
if (p->p_ucred->cr_uid == uap->who && |
114 |
if (p->p_ucred->cr_uid == uap->who && |
| 113 |
p->p_nice < low) |
115 |
p->p_nice < low && |
|
|
116 |
PRISON_CHECK(curp, p)) |
| 114 |
low = p->p_nice; |
117 |
low = p->p_nice; |
| 115 |
break; |
118 |
break; |
| 116 |
|
119 |
|
|
Lines 146-152
Link Here
|
| 146 |
p = curp; |
149 |
p = curp; |
| 147 |
else |
150 |
else |
| 148 |
p = pfind(uap->who); |
151 |
p = pfind(uap->who); |
| 149 |
if (p == 0) |
152 |
if (p == 0 || !PRISON_CHECK(curp, p)) |
| 150 |
break; |
153 |
break; |
| 151 |
error = donice(curp, p, uap->prio); |
154 |
error = donice(curp, p, uap->prio); |
| 152 |
found++; |
155 |
found++; |
|
Lines 159-164
Link Here
|
| 159 |
pg = curp->p_pgrp; |
162 |
pg = curp->p_pgrp; |
| 160 |
else if ((pg = pgfind(uap->who)) == NULL) |
163 |
else if ((pg = pgfind(uap->who)) == NULL) |
| 161 |
break; |
164 |
break; |
|
|
165 |
if (!PRISON_CHECK(curp, LIST_FIRST(&pg->pg_members))) |
| 166 |
break; |
| 162 |
LIST_FOREACH(p, &pg->pg_members, p_pglist) { |
167 |
LIST_FOREACH(p, &pg->pg_members, p_pglist) { |
| 163 |
error = donice(curp, p, uap->prio); |
168 |
error = donice(curp, p, uap->prio); |
| 164 |
found++; |
169 |
found++; |
|
Lines 170-176
Link Here
|
| 170 |
if (uap->who == 0) |
175 |
if (uap->who == 0) |
| 171 |
uap->who = curp->p_ucred->cr_uid; |
176 |
uap->who = curp->p_ucred->cr_uid; |
| 172 |
LIST_FOREACH(p, &allproc, p_list) |
177 |
LIST_FOREACH(p, &allproc, p_list) |
| 173 |
if (p->p_ucred->cr_uid == uap->who) { |
178 |
if (p->p_ucred->cr_uid == uap->who && |
|
|
179 |
PRISON_CHECK(curp, p)) { |
| 174 |
error = donice(curp, p, uap->prio); |
180 |
error = donice(curp, p, uap->prio); |
| 175 |
found++; |
181 |
found++; |
| 176 |
} |
182 |
} |
|
Lines 239-245
Link Here
|
| 239 |
else |
245 |
else |
| 240 |
p = pfind(uap->pid); |
246 |
p = pfind(uap->pid); |
| 241 |
|
247 |
|
| 242 |
if (p == 0) |
248 |
if (p == 0 || !PRISON_CHECK(curp, p)) |
| 243 |
return (ESRCH); |
249 |
return (ESRCH); |
| 244 |
|
250 |
|
| 245 |
switch (uap->function) { |
251 |
switch (uap->function) { |