From 6958204c78a2f8d8aeda75daa86f9a6502384a16 Mon Sep 17 00:00:00 2001 From: jhb Date: Wed, 7 Mar 2001 02:07:56 +0000 Subject: [PATCH] Protect p_flag with the proc lock. --- sys/fs/procfs/procfs_dbregs.c | 7 ++++++- sys/fs/procfs/procfs_fpregs.c | 7 ++++++- sys/fs/procfs/procfs_regs.c | 7 ++++++- sys/miscfs/procfs/procfs_dbregs.c | 7 ++++++- sys/miscfs/procfs/procfs_fpregs.c | 7 ++++++- sys/miscfs/procfs/procfs_regs.c | 7 ++++++- 6 files changed, 36 insertions(+), 6 deletions(-) diff --git a/sys/fs/procfs/procfs_dbregs.c b/sys/fs/procfs/procfs_dbregs.c index c7ad1301472..6d35da0fefd 100644 --- a/sys/fs/procfs/procfs_dbregs.c +++ b/sys/fs/procfs/procfs_dbregs.c @@ -96,5 +96,10 @@ int procfs_validdbregs(p) struct proc *p; { - return ((p->p_flag & P_SYSTEM) == 0); + int valid; + + PROC_LOCK(p); + valid = (p->p_flag & P_SYSTEM) == 0; + PROC_UNLOCK(p); + return (valid); } diff --git a/sys/fs/procfs/procfs_fpregs.c b/sys/fs/procfs/procfs_fpregs.c index 69dd527f6e8..493939ca545 100644 --- a/sys/fs/procfs/procfs_fpregs.c +++ b/sys/fs/procfs/procfs_fpregs.c @@ -93,5 +93,10 @@ int procfs_validfpregs(p) struct proc *p; { - return ((p->p_flag & P_SYSTEM) == 0); + int valid; + + PROC_LOCK(p); + valid = (p->p_flag & P_SYSTEM) == 0; + PROC_UNLOCK(p); + return (valid); } diff --git a/sys/fs/procfs/procfs_regs.c b/sys/fs/procfs/procfs_regs.c index c2b6d4b654f..d1dd0bc19f8 100644 --- a/sys/fs/procfs/procfs_regs.c +++ b/sys/fs/procfs/procfs_regs.c @@ -94,5 +94,10 @@ int procfs_validregs(p) struct proc *p; { - return ((p->p_flag & P_SYSTEM) == 0); + int valid; + + PROC_LOCK(p); + valid = (p->p_flag & P_SYSTEM) == 0; + PROC_UNLOCK(p); + return (valid); } diff --git a/sys/miscfs/procfs/procfs_dbregs.c b/sys/miscfs/procfs/procfs_dbregs.c index c7ad1301472..6d35da0fefd 100644 --- a/sys/miscfs/procfs/procfs_dbregs.c +++ b/sys/miscfs/procfs/procfs_dbregs.c @@ -96,5 +96,10 @@ int procfs_validdbregs(p) struct proc *p; { - return ((p->p_flag & P_SYSTEM) == 0); + int valid; + + PROC_LOCK(p); + valid = (p->p_flag & P_SYSTEM) == 0; + PROC_UNLOCK(p); + return (valid); } diff --git a/sys/miscfs/procfs/procfs_fpregs.c b/sys/miscfs/procfs/procfs_fpregs.c index 69dd527f6e8..493939ca545 100644 --- a/sys/miscfs/procfs/procfs_fpregs.c +++ b/sys/miscfs/procfs/procfs_fpregs.c @@ -93,5 +93,10 @@ int procfs_validfpregs(p) struct proc *p; { - return ((p->p_flag & P_SYSTEM) == 0); + int valid; + + PROC_LOCK(p); + valid = (p->p_flag & P_SYSTEM) == 0; + PROC_UNLOCK(p); + return (valid); } diff --git a/sys/miscfs/procfs/procfs_regs.c b/sys/miscfs/procfs/procfs_regs.c index c2b6d4b654f..d1dd0bc19f8 100644 --- a/sys/miscfs/procfs/procfs_regs.c +++ b/sys/miscfs/procfs/procfs_regs.c @@ -94,5 +94,10 @@ int procfs_validregs(p) struct proc *p; { - return ((p->p_flag & P_SYSTEM) == 0); + int valid; + + PROC_LOCK(p); + valid = (p->p_flag & P_SYSTEM) == 0; + PROC_UNLOCK(p); + return (valid); } -- 2.45.2