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); }