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(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/