diff options
author | 2021-01-09 20:59:06 +0000 | |
---|---|---|
committer | 2021-01-09 20:59:06 +0000 | |
commit | e751c8bcffe03db2c4e26163aa2190e881484a7c (patch) | |
tree | 343fe00eff8d84a0e8bf8ab3ed9d423ffec74b80 | |
parent | Enforce range with sysctl_int_bounded in tcp_sysctl (diff) | |
download | wireguard-openbsd-e751c8bcffe03db2c4e26163aa2190e881484a7c.tar.xz wireguard-openbsd-e751c8bcffe03db2c4e26163aa2190e881484a7c.zip |
Enforce range with sysctl_int_bounded in witness_sysctl_watch
Makes previously explicit checking less verbose.
OK millert@
-rw-r--r-- | sys/kern/subr_witness.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/sys/kern/subr_witness.c b/sys/kern/subr_witness.c index c9810841b0a..05a3079c377 100644 --- a/sys/kern/subr_witness.c +++ b/sys/kern/subr_witness.c @@ -1,4 +1,4 @@ -/* $OpenBSD: subr_witness.c,v 1.42 2021/01/09 12:20:37 visa Exp $ */ +/* $OpenBSD: subr_witness.c,v 1.43 2021/01/09 20:59:06 gnezdo Exp $ */ /*- * Copyright (c) 2008 Isilon Systems, Inc. @@ -2572,17 +2572,15 @@ witness_sysctl_watch(void *oldp, size_t *oldlenp, void *newp, size_t newlen) int value; value = witness_watch; - error = sysctl_int(oldp, oldlenp, newp, newlen, &value); + error = sysctl_int_bounded(oldp, oldlenp, newp, newlen, + &value, -1, 3); if (error == 0 && newp != NULL) { - if (value >= -1 && value <= 3) { - mtx_enter(&w_mtx); - if (value < 0 || witness_watch >= 0) - witness_watch = value; - else - error = EINVAL; - mtx_leave(&w_mtx); - } else + mtx_enter(&w_mtx); + if (value < 0 || witness_watch >= 0) + witness_watch = value; + else error = EINVAL; + mtx_leave(&w_mtx); } return (error); } |