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

Reply via email to