All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 4/7] libxenlight resend: avoid writing empty values to xenstore
@ 2009-12-02 18:01 Andres Lagar-Cavilla
  2009-12-03 12:35 ` Stefano Stabellini
  2009-12-03 17:06 ` [PATCH 4/7] libxenlight meta-resend: " Andres Lagar-Cavilla
  0 siblings, 2 replies; 3+ messages in thread
From: Andres Lagar-Cavilla @ 2009-12-02 18:01 UTC (permalink / raw)
  To: Stefano Stabellini, Vincent Hanquez, xen-devel

[-- Attachment #1: Type: text/plain, Size: 313 bytes --]

This is not a resend strictly speaking, rather an extension of a patch 
accepted previously

-------------------------------

Prevent segmentation fault caused by empty values
in key-value pairs for the /vm/ subdirectory
when restoring a pv domain.

Signed-off-by: Andres Lagar-Cavilla <andres@lagarcavilla.com>


[-- Attachment #2: 04_avoid_segfault_empty_vm_values.patch --]
[-- Type: text/plain, Size: 1768 bytes --]

# HG changeset patch
# User Andres Lagar-Cavilla <andres@lagarcavilla.com>
# Date 1259765969 18000
# Node ID 3d56de009e4233b872a147db8b100cec22dfcfaf
# Parent  2cb7689c60c959f9d9aa29ce5d285486c5a011df
Prevent segmentation fault caused by empty values
in key-value pairs for the /vm/ subdirectory
when restoring a pv domain.

Signed-off-by: Andres Lagar-Cavilla <andres@lagarcavilla.com>

diff -r 2cb7689c60c9 -r 3d56de009e42 libxl.c
--- a/libxl.c
+++ b/libxl.c
@@ -229,6 +229,7 @@ int libxl_domain_restore(struct libxl_ct
                          libxl_device_model_info *dm_info)
 {
     char **vments = NULL, **localents = NULL;
+    int i;
 
     build_pre(ctx, domid, info, state);
     restore_common(ctx, domid, info, state, fd);
@@ -240,14 +241,19 @@ int libxl_domain_restore(struct libxl_ct
         vments[3] = "hvm";
     } else {
         vments = libxl_calloc(ctx, 9, sizeof(char *));
-        vments[0] = "image/ostype";
-        vments[1] = "linux";
-        vments[2] = "image/kernel";
-        vments[3] = (char*) info->kernel;
-        vments[4] = "image/ramdisk";
-        vments[5] = (char*) info->u.pv.ramdisk;
-        vments[6] = "image/cmdline";
-        vments[7] = (char*) info->u.pv.cmdline;
+        i = 0;
+        vments[i++] = "image/ostype";
+        vments[i++] = "linux";
+        vments[i++] = "image/kernel";
+        vments[i++] = (char*) info->kernel;
+        if (info->u.pv.ramdisk) {
+            vments[i++] = "image/ramdisk";
+            vments[i++] = (char*) info->u.pv.ramdisk;
+        }
+        if (info->u.pv.cmdline) {
+            vments[i++] = "image/cmdline";
+            vments[i++] = (char*) info->u.pv.cmdline;
+        }
     }
     build_post(ctx, domid, info, state, vments, localents);
     if (info->hvm)

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-12-03 17:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-02 18:01 [PATCH 4/7] libxenlight resend: avoid writing empty values to xenstore Andres Lagar-Cavilla
2009-12-03 12:35 ` Stefano Stabellini
2009-12-03 17:06 ` [PATCH 4/7] libxenlight meta-resend: " Andres Lagar-Cavilla

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.