diff options
author | jhb <jhb@FreeBSD.org> | 2000-12-01 06:34:19 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2000-12-01 06:34:19 +0000 |
commit | a33939f7ae5551fb13bf89f4241e8c9387abb285 (patch) | |
tree | 208600ec6500008edf7612fb5c86a9f322625af5 /sys/compat/linprocfs | |
parent | b90560484ef8b063e65c3acdf352b73587366cac (diff) | |
download | FreeBSD-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.c | 2 | ||||
-rw-r--r-- | sys/compat/linprocfs/linprocfs_misc.c | 2 |
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 */ |