[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Proactively check for NULL strings passed into xc_linux_build. Either DTRT
# HG changeset patch # User emellor@xxxxxxxxxxxxxxxxxxxxxx # Node ID 0a69deed5e1fbd7627f6c73a6ca494abb0ad0be2 # Parent fbee8d9fbabae6a7a966a49f9fc4104e4fd9d97a Proactively check for NULL strings passed into xc_linux_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 fbee8d9fbaba -r 0a69deed5e1f tools/libxc/xc_linux_build.c --- a/tools/libxc/xc_linux_build.c Tue Jan 10 14:33:00 2006 +++ b/tools/libxc/xc_linux_build.c Tue Jan 10 14:37:25 2006 @@ -693,8 +693,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. */ @@ -755,7 +758,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-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |