]> git.ipfire.org Git - thirdparty/open-vm-tools.git/commitdiff
Fix processing RPC data in TimeSync RPC handler
authorOliver Kurth <okurth@vmware.com>
Fri, 15 Sep 2017 18:23:57 +0000 (11:23 -0700)
committerOliver Kurth <okurth@vmware.com>
Fri, 15 Sep 2017 18:23:57 +0000 (11:23 -0700)
RPC data is whitespace delimited string and any leading whitespaces need to
be ignoreed before processing data. The data here indicates whether timeSync
should do a backward sync on this RPC callback.

open-vm-tools/services/plugins/timeSync/timeSync.c

index 7b03d7772167fd971190d56bda31e237baaf09e1..060b42003246d142f7ad87da9d7da2ebc6369f0b 100644 (file)
@@ -811,9 +811,16 @@ TimeSyncStopLoop(ToolsAppCtx *ctx,
 static gboolean
 TimeSyncTcloHandler(RpcInData *data)
 {
-   Bool backwardSync = !strcmp(data->args, "1");
+   Bool backwardSync;
+   uint32 argVal;
+   unsigned int index = 0;
    TimeSyncData *syncData = data->clientData;
 
+   if (!StrUtil_GetNextUintToken(&argVal, &index, data->args, " ")) {
+      return RPCIN_SETRETVALS(data,
+                              "Unable to tokenize TimeSync RPC data", FALSE);
+   }
+   backwardSync = argVal == 1;
    if (!TimeSyncDoSync(syncData->slewCorrection, TIMESYNC_STEP,
                        backwardSync, syncData)) {
       return RPCIN_SETRETVALS(data, "Unable to sync time", FALSE);