Module Name: src Committed By: kamil Date: Mon Oct 19 14:52:19 UTC 2020
Modified Files: src/sys/kern: sys_ptrace.c sys_ptrace_common.c Log Message: Rollback unintended changes in the previous commit To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/kern/sys_ptrace.c cvs rdiff -u -r1.85 -r1.86 src/sys/kern/sys_ptrace_common.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_ptrace.c diff -u src/sys/kern/sys_ptrace.c:1.7 src/sys/kern/sys_ptrace.c:1.8 --- src/sys/kern/sys_ptrace.c:1.7 Mon Oct 19 14:47:01 2020 +++ src/sys/kern/sys_ptrace.c Mon Oct 19 14:52:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: sys_ptrace.c,v 1.7 2020/10/19 14:47:01 kamil Exp $ */ +/* $NetBSD: sys_ptrace.c,v 1.8 2020/10/19 14:52:19 kamil Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -106,9 +106,8 @@ * from: @(#)sys_process.c 8.1 (Berkeley) 6/10/93 */ - #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sys_ptrace.c,v 1.7 2020/10/19 14:47:01 kamil Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sys_ptrace.c,v 1.8 2020/10/19 14:52:19 kamil Exp $"); #ifdef _KERNEL_OPT #include "opt_ptrace.h" @@ -129,6 +128,7 @@ __KERNEL_RCSID(0, "$NetBSD: sys_ptrace.c #include <sys/syscallargs.h> #include <sys/syscallvar.h> #include <sys/syscall.h> +#include <sys/module.h> #include <uvm/uvm_extern.h> @@ -214,3 +214,26 @@ sys_ptrace(struct lwp *l, const struct s return do_ptrace(&native_ptm, l, SCARG(uap, req), SCARG(uap, pid), SCARG(uap, addr), SCARG(uap, data), retval); } + +#define DEPS "ptrace_common" + +MODULE(MODULE_CLASS_EXEC, ptrace, DEPS); + +static int +ptrace_modcmd(modcmd_t cmd, void *arg) +{ + int error; + + switch (cmd) { + case MODULE_CMD_INIT: + error = syscall_establish(&emul_netbsd, ptrace_syscalls); + break; + case MODULE_CMD_FINI: + error = syscall_disestablish(&emul_netbsd, ptrace_syscalls); + break; + default: + error = ENOTTY; + break; + } + return error; +} Index: src/sys/kern/sys_ptrace_common.c diff -u src/sys/kern/sys_ptrace_common.c:1.85 src/sys/kern/sys_ptrace_common.c:1.86 --- src/sys/kern/sys_ptrace_common.c:1.85 Mon Oct 19 14:47:01 2020 +++ src/sys/kern/sys_ptrace_common.c Mon Oct 19 14:52:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: sys_ptrace_common.c,v 1.85 2020/10/19 14:47:01 kamil Exp $ */ +/* $NetBSD: sys_ptrace_common.c,v 1.86 2020/10/19 14:52:19 kamil Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -106,9 +106,8 @@ * from: @(#)sys_process.c 8.1 (Berkeley) 6/10/93 */ - #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sys_ptrace_common.c,v 1.85 2020/10/19 14:47:01 kamil Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sys_ptrace_common.c,v 1.86 2020/10/19 14:52:19 kamil Exp $"); #ifdef _KERNEL_OPT #include "opt_ptrace.h" @@ -135,6 +134,7 @@ __KERNEL_RCSID(0, "$NetBSD: sys_ptrace_c #include <sys/kauth.h> #include <sys/mount.h> #include <sys/syscallargs.h> +#include <sys/module.h> #include <sys/condvar.h> #include <sys/mutex.h> #include <sys/compat_stub.h> @@ -1785,3 +1785,25 @@ process_auxv_offset(struct proc *p, stru return 0; } #endif /* PTRACE */ + +MODULE(MODULE_CLASS_EXEC, ptrace_common, NULL); + +static int +ptrace_common_modcmd(modcmd_t cmd, void *arg) +{ + int error; + + switch (cmd) { + case MODULE_CMD_INIT: + error = ptrace_init(); + break; + case MODULE_CMD_FINI: + error = ptrace_fini(); + break; + default: + ptrace_hooks(); + error = ENOTTY; + break; + } + return error; +}