a21a47f3 |
diff -ru open-vm-tools-stable-10.1.10/open-vm-tools/libDeployPkg/linuxDeployment.c open-vm-tools-stable-10.1.10-modified/open-vm-tools/libDeployPkg/linuxDeployment.c
--- open-vm-tools-stable-10.1.10/open-vm-tools/libDeployPkg/linuxDeployment.c 2017-07-28 14:59:15.000000000 -0700
+++ open-vm-tools-stable-10.1.10-modified/open-vm-tools/libDeployPkg/linuxDeployment.c 2017-08-22 12:30:18.862037086 -0700
@@ -582,13 +582,17 @@ |
6dcb866d |
close(fd); |
a21a47f3 |
|
6dcb866d |
// 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;
} |
a21a47f3 |
|
a57e3903 |
- memcpy(*command, hdr.command, VMWAREDEPLOYPKG_CMD_LENGTH); |
6dcb866d |
+ // will pad with '\0' if necessary
+ strncpy(*command, hdr.command, VMWAREDEPLOYPKG_CMD_LENGTH);
+ // hdr.command is a structure of fixed length VMWAREDEPLOYPKG_CMD_LENGTH |
a57e3903 |
+ (*command)[VMWAREDEPLOYPKG_CMD_LENGTH] = '\0';
+ |
6dcb866d |
*archiveType = hdr.payloadType; |
a57e3903 |
*flags = hdr.reserved; |
a21a47f3 |
@@ -1094,6 +1098,20 @@ |
a57e3903 |
} else { |
a21a47f3 |
sLog(log_info, "cloud-init is either not installed or the flag to enable \
cloud-init is not set.\n Executing traditional GOSC workflow"); |
a57e3903 |
+ if ((strstr(command, "scripts/Customize.pl") != NULL) || (strstr(command, "scripts/customize.sh") != NULL)) {
+ free (command);
+ const char* PHOTON_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"; |
6dcb866d |
+ |
a57e3903 |
+ // The command will be parsed alter and can be of arbitrary length |
4a459969 |
+ command = StrUtil_ReplaceAll(PHOTON_OS_LAUNCH_COMMAND, TMP_PATH_VAR, tmpDirPath); |
a57e3903 |
+ if (!command) {
+ SetDeployError("Error allocating memory.");
+ return DEPLOY_ERROR;
+ }
+ _DeployPkg_SkipReboot(true);
+ } |
4a459969 |
+ // Run the deployment command
+ sLog(log_info, "Launching deployment %s. \n", command); |
a57e3903 |
deploymentResult = ForkExecAndWaitCommand(command); |
4a459969 |
free(command); |
a21a47f3 |
|