diff options
author | 2020-10-14 19:28:22 +0000 | |
---|---|---|
committer | 2020-10-14 19:28:22 +0000 | |
commit | 4070ddb0e0af3cb676846fec394d318d26ef38fa (patch) | |
tree | a2057824ddaa80d47c6169871c4e7f9c493e395e /lib/libkvm/kvm.c | |
parent | replace a MAXPATHLEN that slipped back in with PATH_MAX so userland won't (diff) | |
download | wireguard-openbsd-4070ddb0e0af3cb676846fec394d318d26ef38fa.tar.xz wireguard-openbsd-4070ddb0e0af3cb676846fec394d318d26ef38fa.zip |
Accommodate POSIX basename(3) that takes a non-const parameter and
may modify the string buffer. ok millert@
Diffstat (limited to 'lib/libkvm/kvm.c')
-rw-r--r-- | lib/libkvm/kvm.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/libkvm/kvm.c b/lib/libkvm/kvm.c index 610173686e3..63e67fd4b95 100644 --- a/lib/libkvm/kvm.c +++ b/lib/libkvm/kvm.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kvm.c,v 1.66 2019/06/28 13:32:42 deraadt Exp $ */ +/* $OpenBSD: kvm.c,v 1.67 2020/10/14 19:28:22 naddy Exp $ */ /* $NetBSD: kvm.c,v 1.43 1996/05/05 04:31:59 gwr Exp $ */ /*- @@ -676,12 +676,13 @@ static int kvm_dbopen(kvm_t *kd, const char *uf) { char dbversion[_POSIX2_LINE_MAX], kversion[_POSIX2_LINE_MAX]; - char dbname[PATH_MAX]; + char dbname[PATH_MAX], ufbuf[PATH_MAX]; struct nlist nitem; size_t dbversionlen; DBT rec; - uf = basename(uf); + strlcpy(ufbuf, uf, sizeof(ufbuf)); + uf = basename(ufbuf); (void)snprintf(dbname, sizeof(dbname), "%skvm_%s.db", _PATH_VARDB, uf); kd->db = dbopen(dbname, O_RDONLY, 0, DB_HASH, NULL); |