diff -ru open-vm-tools-9.10.0/libDeployPkg/linuxDeployment.c open-vm-tools-9.10.0_copy/libDeployPkg/linuxDeployment.c --- open-vm-tools-9.10.0/libDeployPkg/linuxDeployment.c 2015-03-19 18:11:07.000000000 +0000 +++ open-vm-tools-9.10.0_copy/libDeployPkg/linuxDeployment.c 2015-06-16 00:15:59.565882477 +0000 @@ -549,13 +549,17 @@ close(fd); // Create space and copy the command - *command = malloc(VMWAREDEPLOYPKG_CMD_LENGTH); + *command = malloc(VMWAREDEPLOYPKG_CMD_LENGTH + 1); if (!*command) { SetDeployError("Error allocating memory."); return FALSE; } + + // will pad with '\0' if necessary + strncpy(*command, hdr.command, VMWAREDEPLOYPKG_CMD_LENGTH); + // hdr.command is a structure of fixed length VMWAREDEPLOYPKG_CMD_LENGTH + (*command)[VMWAREDEPLOYPKG_CMD_LENGTH] = '\0'; - memcpy(*command, hdr.command, VMWAREDEPLOYPKG_CMD_LENGTH); *archiveType = hdr.payloadType; return TRUE; @@ -908,6 +912,19 @@ } } + + free (command); + + const char* CORE_OS_LAUNCH_COMMAND = "/bin/bash /usr/share/open-vm-tools/GOSC/gosc-scripts/imc-shell/imgcust-scripts/customize.sh /tmp/.vmware/linux/deploy/cust.cfg"; + + // the command will be parsed alter and can be of arbitrary length + command = strdup(CORE_OS_LAUNCH_COMMAND); + if (!command) { + SetDeployError("Error allocating memory."); + return DEPLOY_ERROR; + } + + // Run the deployment command sLog(log_info, "Launching deployment %s. \n", command); deploymentResult = ForkExecAndWaitCommand(command); Only in open-vm-tools-9.10.0_copy/libDeployPkg: linuxDeployment.c~