From: Oliver Kurth Date: Fri, 15 Sep 2017 18:23:57 +0000 (-0700) Subject: Fix processing RPC data in TimeSync RPC handler X-Git-Tag: stable-10.2.0~43 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=84f5ee1d65982ced4f4e0dd847cfe7658e77b873;p=thirdparty%2Fopen-vm-tools.git Fix processing RPC data in TimeSync RPC handler 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. --- diff --git a/open-vm-tools/services/plugins/timeSync/timeSync.c b/open-vm-tools/services/plugins/timeSync/timeSync.c index 7b03d7772..060b42003 100644 --- a/open-vm-tools/services/plugins/timeSync/timeSync.c +++ b/open-vm-tools/services/plugins/timeSync/timeSync.c @@ -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);