From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andres Lagar-Cavilla Subject: [PATCH 4/7] libxenlight resend: avoid writing empty values to xenstore Date: Wed, 02 Dec 2009 13:01:42 -0500 Message-ID: <4B16AB86.5040306@lagarcavilla.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------090401060101000308040102" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Stefano Stabellini , Vincent Hanquez , xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------090401060101000308040102 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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 --------------090401060101000308040102 Content-Type: text/plain; name="04_avoid_segfault_empty_vm_values.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="04_avoid_segfault_empty_vm_values.patch" # HG changeset patch # User Andres Lagar-Cavilla # 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 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) --------------090401060101000308040102 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------090401060101000308040102--