[libvirt] [PATCH] virDomainMemoryStats: avoid null dereference
Laine Stump
laine at laine.org
Tue Feb 15 00:38:14 UTC 2011
On 02/14/2011 06:25 PM, Eric Blake wrote:
> * src/libvirt.c (virDomainMemoryStats): Check domain before flags.
> ---
>
> Another valid bug found by clang. User's generally should't call
> virDomainMemoryStats(NULL,...), but we don't forbid it elsewhere, and
> doing so is not supposed to crash libvirt. All other flags checks in
> this file occur after validating the object first.
>
> src/libvirt.c | 12 ++++++------
> 1 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/src/libvirt.c b/src/libvirt.c
> index 479a9b5..f65cc24 100644
> --- a/src/libvirt.c
> +++ b/src/libvirt.c
> @@ -4411,12 +4411,6 @@ int virDomainMemoryStats (virDomainPtr dom, virDomainMemoryStatPtr stats,
>
> VIR_DOMAIN_DEBUG(dom, "stats=%p, nr_stats=%u", stats, nr_stats);
>
> - if (flags != 0) {
> - virLibDomainError(VIR_ERR_INVALID_ARG,
> - _("flags must be zero"));
> - goto error;
> - }
> -
> virResetLastError();
>
> if (!VIR_IS_CONNECTED_DOMAIN (dom)) {
> @@ -4424,6 +4418,12 @@ int virDomainMemoryStats (virDomainPtr dom, virDomainMemoryStatPtr stats,
> virDispatchError(NULL);
> return -1;
> }
> + if (flags != 0) {
> + virLibDomainError(VIR_ERR_INVALID_ARG,
> + _("flags must be zero"));
> + goto error;
> + }
> +
> if (!stats || nr_stats == 0)
> return 0;
>
ACK
More information about the libvir-list
mailing list