Module Name: src
Committed By: riastradh
Date: Sun Jul 10 17:47:58 UTC 2022
Modified Files:
src/sys/kern: sys_process_lwpstatus.c
Log Message:
ptrace(PT_LWPSTATUS): Fix lid=0 case.
Make ptrace_read_lwpstatus always overwrite the whole struct
ptrace_lwpstatus so the caller doesn't have to make sure pl_lwpid is
initialized correctly -- ptrace_lwpstatus was missing that
reinitialization after ptrace_update_lwp, but it's less work for all
the callers if we just make the assertion an assignment instead.
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/kern/sys_process_lwpstatus.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/kern/sys_process_lwpstatus.c
diff -u src/sys/kern/sys_process_lwpstatus.c:1.3 src/sys/kern/sys_process_lwpstatus.c:1.4
--- src/sys/kern/sys_process_lwpstatus.c:1.3 Tue Oct 20 22:31:20 2020
+++ src/sys/kern/sys_process_lwpstatus.c Sun Jul 10 17:47:58 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: sys_process_lwpstatus.c,v 1.3 2020/10/20 22:31:20 rin Exp $ */
+/* $NetBSD: sys_process_lwpstatus.c,v 1.4 2022/07/10 17:47:58 riastradh Exp $ */
/*-
* Copyright (c) 2019 The NetBSD Foundation, Inc.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_process_lwpstatus.c,v 1.3 2020/10/20 22:31:20 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_process_lwpstatus.c,v 1.4 2022/07/10 17:47:58 riastradh Exp $");
#ifdef _KERNEL_OPT
#include "opt_ptrace.h"
@@ -56,8 +56,7 @@ void
ptrace_read_lwpstatus(struct lwp *l, struct ptrace_lwpstatus *pls)
{
- KASSERT(l->l_lid == pls->pl_lwpid);
-
+ pls->pl_lwpid = l->l_lid;
memcpy(&pls->pl_sigmask, &l->l_sigmask, sizeof(pls->pl_sigmask));
memcpy(&pls->pl_sigpend, &l->l_sigpend.sp_set, sizeof(pls->pl_sigpend));
@@ -79,8 +78,6 @@ void
process_read_lwpstatus(struct lwp *l, struct ptrace_lwpstatus *pls)
{
- pls->pl_lwpid = l->l_lid;
-
ptrace_read_lwpstatus(l, pls);
}