summaryrefslogtreecommitdiffstats
path: root/sys/compat/linprocfs
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2000-12-01 06:34:19 +0000
committerjhb <jhb@FreeBSD.org>2000-12-01 06:34:19 +0000
commita33939f7ae5551fb13bf89f4241e8c9387abb285 (patch)
tree208600ec6500008edf7612fb5c86a9f322625af5 /sys/compat/linprocfs
parentb90560484ef8b063e65c3acdf352b73587366cac (diff)
downloadFreeBSD-src-a33939f7ae5551fb13bf89f4241e8c9387abb285.zip
FreeBSD-src-a33939f7ae5551fb13bf89f4241e8c9387abb285.tar.gz
Protect access to p_stat with sched_lock.
Diffstat (limited to 'sys/compat/linprocfs')
-rw-r--r--sys/compat/linprocfs/linprocfs.c2
-rw-r--r--sys/compat/linprocfs/linprocfs_misc.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/sys/compat/linprocfs/linprocfs.c b/sys/compat/linprocfs/linprocfs.c
index d4cd0c2..7b73d2d 100644
--- a/sys/compat/linprocfs/linprocfs.c
+++ b/sys/compat/linprocfs/linprocfs.c
@@ -422,10 +422,12 @@ linprocfs_doprocstatus(curp, p, pfs, uio)
ps = psbuf;
+ mtx_enter(&sched_lock, MTX_SPIN);
if (p->p_stat > sizeof state_str / sizeof *state_str)
state = state_str[0];
else
state = state_str[(int)p->p_stat];
+ mtx_exit(&sched_lock, MTX_SPIN);
#define PS_ADD ps += sprintf
PS_ADD(ps, "Name:\t%s\n", p->p_comm); /* XXX escape */
diff --git a/sys/compat/linprocfs/linprocfs_misc.c b/sys/compat/linprocfs/linprocfs_misc.c
index d4cd0c2..7b73d2d 100644
--- a/sys/compat/linprocfs/linprocfs_misc.c
+++ b/sys/compat/linprocfs/linprocfs_misc.c
@@ -422,10 +422,12 @@ linprocfs_doprocstatus(curp, p, pfs, uio)
ps = psbuf;
+ mtx_enter(&sched_lock, MTX_SPIN);
if (p->p_stat > sizeof state_str / sizeof *state_str)
state = state_str[0];
else
state = state_str[(int)p->p_stat];
+ mtx_exit(&sched_lock, MTX_SPIN);
#define PS_ADD ps += sprintf
PS_ADD(ps, "Name:\t%s\n", p->p_comm); /* XXX escape */
OpenPOWER on IntegriCloud