svn commit: r316072 - stable/10/lib/libkvm
Ngie Cooper
ngie at FreeBSD.org
Tue Mar 28 06:05:27 UTC 2017
Author: ngie
Date: Tue Mar 28 06:05:26 2017
New Revision: 316072
URL: https://svnweb.freebsd.org/changeset/base/316072
Log:
MFC r315686,r315688:
r315686:
kvm_geterr: handle `kd` == NULL in a deterministic/graceful manner
Return a NUL string instead of just working by accident with kvm_geterr(3)
when MALLOC_PRODUCTION is disabled (I didn't confirm the MALLOC_PRODUCTION
being enabled path).
Document the new explicit return behavior for kvm_geterr(3), as well
as the previous implicit behavior, i.e., the buffer attached to
returned via kvm_geterr(3) would be empty if a previous error hadn't been
stored in `kd`.
r315688:
kvm_write: fix -Wcast-qual warning in pointer arithmetic argument
Cast buf to `const char *` when doing arithmetic operation to match
`cp`'s type [1].
Modified:
stable/10/lib/libkvm/kvm.c
stable/10/lib/libkvm/kvm_geterr.3
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/lib/libkvm/kvm.c
==============================================================================
--- stable/10/lib/libkvm/kvm.c Tue Mar 28 06:03:43 2017 (r316071)
+++ stable/10/lib/libkvm/kvm.c Tue Mar 28 06:05:26 2017 (r316072)
@@ -76,9 +76,14 @@ static char sccsid[] = "@(#)kvm.c 8.2 (B
/* from src/lib/libc/gen/nlist.c */
int __fdnlist(int, struct nlist *);
+static char _kd_is_null[] = "";
+
char *
kvm_geterr(kvm_t *kd)
{
+
+ if (kd == NULL)
+ return (_kd_is_null);
return (kd->errbuf);
}
@@ -623,5 +628,5 @@ kvm_write(kvm_t *kd, u_long kva, const v
len -= cw;
}
- return (cp - (char *)buf);
+ return (cp - (const char *)buf);
}
Modified: stable/10/lib/libkvm/kvm_geterr.3
==============================================================================
--- stable/10/lib/libkvm/kvm_geterr.3 Tue Mar 28 06:03:43 2017 (r316071)
+++ stable/10/lib/libkvm/kvm_geterr.3 Tue Mar 28 06:05:26 2017 (r316072)
@@ -32,7 +32,7 @@
.\" @(#)kvm_geterr.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
-.Dd June 4, 1993
+.Dd March 21, 2017
.Dt KVM_GETERR 3
.Os
.Sh NAME
@@ -54,6 +54,15 @@ library call did not produce an error.
The string returned is stored in memory owned by
.Xr kvm 3
so the message should be copied out and saved elsewhere if necessary.
+.Sh RETURN VALUES
+The function
+.Fn kvm_geterr
+will return "" if
+.Fa kd
+is
+.Dv NULL
+or an error has not been captured for
+.Fa kd .
.Sh SEE ALSO
.Xr kvm 3 ,
.Xr kvm_close 3 ,
More information about the svn-src-stable-10
mailing list