[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] xc_linux_build - proactively check for NULL string arguments


  • To: xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: B Thomas <bjthomas3@xxxxxxxxx>
  • Date: Wed, 4 Jan 2006 19:33:53 -0500
  • Delivery-date: Thu, 05 Jan 2006 00:39:12 +0000
  • Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type; b=N8y0fOVpWzYg/CMsrUrhfioue+Eo+40PAdSYjUZastaHcdyjRItlyfyhotTjMV5KPWvHyboAwadE0tTfqHReYWiUCr8uDWIgtMKlEpMaDj9mV09b71lWoTT1Uyblrk8AZpcUtY05wV0RaE9tGs/zs1hOCB/WkHkrVql3Cxtrg8Y=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Proactively check for NULL strings passed into xc_linx_build.  Either DTRT or return error if detected.  A NULL cmdline, for example, would currently generate a segfault.

Signed-off-by:  Ben Thomas   bjthomas3@xxxxxxxxx



diff -r 5b30599761b3 tools/libxc/xc_linux_build.c
--- a/tools/libxc/xc_linux_build.c      Mon Jan  2 10:35:29 2006
+++ b/tools/libxc/xc_linux_build.c      Wed Jan  4 19:31:22 2006
@@ -689,8 +689,11 @@
         start_info->mod_start    = vinitrd_start;
         start_info->mod_len      = initrd_len;
     }
-    strncpy((char *)start_info->cmd_line, cmdline, MAX_GUEST_CMDLINE);
-    start_info->cmd_line[MAX_GUEST_CMDLINE-1] = '\0';
+    if (cmdline != NULL) {
+        strncpy((char *)start_info->cmd_line, cmdline, MAX_GUEST_CMDLINE);
+        start_info->cmd_line[MAX_GUEST_CMDLINE-1] = '\0';
+    } else
+        start_info->cmd_line[0] = '\0';
     munmap(start_info, PAGE_SIZE);

     /* shared_info page starts its life empty. */
@@ -751,7 +754,8 @@
         goto error_out;
     }

-    if ( (image = xc_read_kernel_image(image_name, &image_size)) == NULL )
+    if ( (image_name == NULL) ||
+         ((image = xc_read_kernel_image(image_name, &image_size)) == NULL ) )
         goto error_out;

     if ( (ramdisk_name != NULL) && (strlen(ramdisk_name) != 0) )

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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.