Accommodate a basename(3) that takes a non-const parameter and may in fact modify the string buffer.
Note that strlen(uf) >= PATH_MAX is already checked by the caller in _kvm_open(). ok? Index: lib/libkvm/kvm.c =================================================================== RCS file: /cvs/src/lib/libkvm/kvm.c,v retrieving revision 1.66 diff -u -p -r1.66 kvm.c --- lib/libkvm/kvm.c 28 Jun 2019 13:32:42 -0000 1.66 +++ lib/libkvm/kvm.c 13 Oct 2020 08:55:29 -0000 @@ -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); -- Christian "naddy" Weisgerber na...@mips.inka.de