Module Name: src Committed By: kamil Date: Sun May 13 23:01:25 UTC 2018
Modified Files: src/tests/lib/libc/sys: t_ptrace_wait.h t_ptrace_x86_wait.h Log Message: Refactor code in ATF ptrace(2) tests Move the can_we_set_dbregs() auxiliary function from t_ptrace_x86_wait.h to a common file t_ptrace_wait.h. This allows using this function for checking whether the DBREGS set operations in ptrace(2) are accessible for a user. Sponsored by <The NetBSD Foundation> To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/tests/lib/libc/sys/t_ptrace_wait.h cvs rdiff -u -r1.5 -r1.6 src/tests/lib/libc/sys/t_ptrace_x86_wait.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/lib/libc/sys/t_ptrace_wait.h diff -u src/tests/lib/libc/sys/t_ptrace_wait.h:1.3 src/tests/lib/libc/sys/t_ptrace_wait.h:1.4 --- src/tests/lib/libc/sys/t_ptrace_wait.h:1.3 Sat Apr 28 17:56:55 2018 +++ src/tests/lib/libc/sys/t_ptrace_wait.h Sun May 13 23:01:25 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: t_ptrace_wait.h,v 1.3 2018/04/28 17:56:55 kamil Exp $ */ +/* $NetBSD: t_ptrace_wait.h,v 1.4 2018/05/13 23:01:25 kamil Exp $ */ /*- * Copyright (c) 2016 The NetBSD Foundation, Inc. @@ -409,6 +409,35 @@ check_happy(unsigned n) } } +#if defined(HAVE_DBREGS) +static bool +can_we_set_dbregs(void) +{ + static long euid = -1; + static int user_set_dbregs = -1; + size_t user_set_dbregs_len = sizeof(user_set_dbregs); + + if (euid == -1) + euid = geteuid(); + + if (euid == 0) + return true; + + if (user_set_dbregs == -1) { + if (sysctlbyname("security.models.extensions.user_set_dbregs", + &user_set_dbregs, &user_set_dbregs_len, NULL, 0) + == -1) { + return false; + } + } + + if (user_set_dbregs > 0) + return true; + else + return false; +} +#endif + #if defined(TWAIT_HAVE_PID) #define ATF_TP_ADD_TC_HAVE_PID(a,b) ATF_TP_ADD_TC(a,b) #else Index: src/tests/lib/libc/sys/t_ptrace_x86_wait.h diff -u src/tests/lib/libc/sys/t_ptrace_x86_wait.h:1.5 src/tests/lib/libc/sys/t_ptrace_x86_wait.h:1.6 --- src/tests/lib/libc/sys/t_ptrace_x86_wait.h:1.5 Sun Apr 8 17:20:18 2018 +++ src/tests/lib/libc/sys/t_ptrace_x86_wait.h Sun May 13 23:01:25 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: t_ptrace_x86_wait.h,v 1.5 2018/04/08 17:20:18 kamil Exp $ */ +/* $NetBSD: t_ptrace_x86_wait.h,v 1.6 2018/05/13 23:01:25 kamil Exp $ */ /*- * Copyright (c) 2016 The NetBSD Foundation, Inc. @@ -57,33 +57,6 @@ union u { } bits; }; -static bool -can_we_set_dbregs(void) -{ - static long euid = -1; - static int user_set_dbregs = -1; - size_t user_set_dbregs_len = sizeof(user_set_dbregs); - - if (euid == -1) - euid = geteuid(); - - if (euid == 0) - return true; - - if (user_set_dbregs == -1) { - if (sysctlbyname("security.models.extensions.user_set_dbregs", - &user_set_dbregs, &user_set_dbregs_len, NULL, 0) - == -1) { - return false; - } - } - - if (user_set_dbregs > 0) - return true; - else - return false; -} - ATF_TC(dbregs_print); ATF_TC_HEAD(dbregs_print, tc) {