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

Matthias Bolte matthias.bolte at googlemail.com
Fri Jun 11 16:00:17 UTC 2010


2010/6/11 Daniel P. Berrange <berrange at redhat.com>:
> 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
>
> Daniel

Thanks, pushed.

Matthias




More information about the libvir-list mailing list