[libvirt] [PATCH] vbox: check getenv("DISPLAY") for NULL in vboxDomainDumpXML

Daniel Veillard veillard at redhat.com
Thu Jun 10 22:58:58 UTC 2010


On Thu, Jun 10, 2010 at 10:44:33PM +0200, Matthias Bolte wrote:
> Otherwise this will segfault if DISPLAY is not defined.
> ---
>  src/vbox/vbox_tmpl.c |   16 ++++++++++------
>  1 files changed, 10 insertions(+), 6 deletions(-)
> 
> diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c
> index 1372f96..dfa76a6 100644
> --- a/src/vbox/vbox_tmpl.c
> +++ b/src/vbox/vbox_tmpl.c
> @@ -1915,6 +1915,7 @@ static char *vboxDomainDumpXML(virDomainPtr dom, int flags) {
>      vboxIID  *iid        = NULL;
>      int gotAllABoutDef   = -1;
>      nsresult rc;
> +    char *tmp;
>  
>  #if VBOX_API_VERSION == 2002
>      if (VIR_ALLOC(iid) < 0) {
> @@ -2191,12 +2192,15 @@ static char *vboxDomainDumpXML(virDomainPtr dom, int flags) {
>                  } else if ((vrdpPresent != 1) && (totalPresent == 0) && (VIR_ALLOC_N(def->graphics, 1) >= 0)) {
>                      if (VIR_ALLOC(def->graphics[def->ngraphics]) >= 0) {
>                          def->graphics[def->ngraphics]->type = VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP;
> -                        def->graphics[def->ngraphics]->data.desktop.display = strdup(getenv("DISPLAY"));
> -                        if (def->graphics[def->ngraphics]->data.desktop.display == NULL) {
> -                            virReportOOMError();
> -                            /* just don't go to cleanup yet as it is ok to have
> -                             * display as NULL
> -                             */
> +                        tmp = getenv("DISPLAY");
> +                        if (tmp != NULL) {
> +                            def->graphics[def->ngraphics]->data.desktop.display = strdup(tmp);
> +                            if (def->graphics[def->ngraphics]->data.desktop.display == NULL) {
> +                                virReportOOMError();
> +                                /* just don't go to cleanup yet as it is ok to have
> +                                 * display as NULL
> +                                 */
> +                            }
>                          }
>                          totalPresent++;
>                          def->ngraphics++;

  ACK, makes sense to me :-)

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