47 lines
1.2 KiB
Diff
47 lines
1.2 KiB
Diff
commit a495365d09138bf0f07504cfe9b6ea2de858e18e
|
|
Author: Jim Fehlig <jfehlig@suse.com>
|
|
Date: Fri Nov 18 14:54:38 2011 -0700
|
|
|
|
Don't copy sexpr node value that is an empty string
|
|
|
|
Xen4.1 initializes some unspecified sexpr config items to an empty
|
|
string, unlike previous Xen versions that would leave the item unset.
|
|
E.g. the kernel item for an HVM guest (non-direct kernel boot):
|
|
|
|
Xen4.0 and earlier
|
|
...
|
|
(image
|
|
(hvm
|
|
(kernel )
|
|
...
|
|
|
|
Xen4.1
|
|
...
|
|
(image
|
|
(hvm
|
|
(kernel '')
|
|
...
|
|
|
|
The empty string for kernel causes some grief in subsequent parsing
|
|
where existence of specified kernel is checked, e.g.
|
|
|
|
if (!def->os.kernel)
|
|
...
|
|
|
|
This patch solves the problem in sexpr_node_copy() by not copying
|
|
a node containing an empty string.
|
|
|
|
Index: libvirt-0.9.7/src/util/sexpr.c
|
|
===================================================================
|
|
--- libvirt-0.9.7.orig/src/util/sexpr.c
|
|
+++ libvirt-0.9.7/src/util/sexpr.c
|
|
@@ -519,7 +519,7 @@ int sexpr_node_copy(const struct sexpr *
|
|
{
|
|
const char *val = sexpr_node(sexpr, node);
|
|
|
|
- if (val) {
|
|
+ if (val && *val) {
|
|
*dst = strdup(val);
|
|
if (!(*dst))
|
|
return -1;
|