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`. Differential Revision: D10022 MFC after: 1 week Reviewed by: vangyzen Sponsored by: Dell EMC Isilon
This commit is contained in:
parent
7d488f1e47
commit
df2e194601
@ -66,9 +66,14 @@ static char sccsid[] = "@(#)kvm.c 8.2 (Berkeley) 2/13/94";
|
||||
|
||||
SET_DECLARE(kvm_arch, struct kvm_arch);
|
||||
|
||||
static char _kd_is_null[] = "";
|
||||
|
||||
char *
|
||||
kvm_geterr(kvm_t *kd)
|
||||
{
|
||||
|
||||
if (kd == NULL)
|
||||
return (_kd_is_null);
|
||||
return (kd->errbuf);
|
||||
}
|
||||
|
||||
|
@ -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 ,
|
||||
|
Loading…
Reference in New Issue
Block a user