[libvirt] [PATCH] xend_internal: don't let invalid input provoke NULL dereference

Daniel Veillard veillard at redhat.com
Wed Jan 6 17:25:03 UTC 2010


On Wed, Jan 06, 2010 at 01:02:01PM +0100, Jim Meyering wrote:
> If there's a good reason to test for NULL "conn", then
> we certainly must not dereference "conn" before that point.
> 
> This assumes we do want to retain the NULL test.
> Note that many other functions perform this same test.
> 
> >From 2c7b628728efcb5a59c1e7aa1cba763f5ef0045a Mon Sep 17 00:00:00 2001
> From: Jim Meyering <meyering at redhat.com>
> Date: Wed, 6 Jan 2010 12:59:21 +0100
> Subject: [PATCH] xend_internal: don't let invalid input provoke NULL dereference
> 
> * src/xen/xend_internal.c (xenDaemonOpen_unix): Do not dereference
> a NULL "conn".  Move first deref to follow the "conn == NULL" test.
> ---
>  src/xen/xend_internal.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c
> index 827aac4..be033f5 100644
> --- a/src/xen/xend_internal.c
> +++ b/src/xen/xend_internal.c
> @@ -748,11 +748,12 @@ int
>  xenDaemonOpen_unix(virConnectPtr conn, const char *path)
>  {
>      struct sockaddr_un *addr;
> -    xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) conn->privateData;
> +    xenUnifiedPrivatePtr priv;
> 
>      if ((conn == NULL) || (path == NULL))
>          return (-1);
> 
> +    priv = (xenUnifiedPrivatePtr) conn->privateData;
>      memset(&priv->addr, 0, sizeof(priv->addr));
>      priv->addrfamily = AF_UNIX;
>      /*

  ACK, clearly an oversight, thanks !

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list