From: VMware, Inc <> Date: Tue, 19 Oct 2010 19:15:08 +0000 (-0700) Subject: String const-ness fixes. X-Git-Tag: 2010.10.18-313025~41 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1d26e1c2c9e2f109422dfb5755a3ba0ff1cd38ed;p=thirdparty%2Fopen-vm-tools.git String const-ness fixes. Signed-off-by: Marcelo Vanzin --- diff --git a/open-vm-tools/lib/include/vmware/tools/guestrpc.h b/open-vm-tools/lib/include/vmware/tools/guestrpc.h index 0b98c7600..a12767b5f 100644 --- a/open-vm-tools/lib/include/vmware/tools/guestrpc.h +++ b/open-vm-tools/lib/include/vmware/tools/guestrpc.h @@ -41,8 +41,9 @@ G_BEGIN_DECLS -/** Alias for RpcChannel_SetRetVals. */ -#define RPCIN_SETRETVALS RpcChannel_SetRetVals +/** Aliases. */ +#define RPCIN_SETRETVALS RpcChannel_SetRetVals +#define RPCIN_SETRETVALSF RpcChannel_SetRetValsF struct RpcChannel; @@ -112,7 +113,7 @@ typedef gboolean (*RpcChannelStartFn)(struct RpcChannel *); typedef void (*RpcChannelStopFn)(struct RpcChannel *); typedef void (*RpcChannelShutdownFn)(struct RpcChannel *); typedef gboolean (*RpcChannelSendFn)(struct RpcChannel *, - char *data, + char const *data, size_t dataLen, char **result, size_t *resultLen); @@ -193,7 +194,7 @@ RpcChannel_Stop(RpcChannel *chan) G_INLINE_FUNC gboolean RpcChannel_Send(RpcChannel *chan, - char *data, + char const *data, size_t dataLen, char **result, size_t *resultLen) @@ -234,9 +235,14 @@ RpcChannel_RegisterCallback(RpcChannel *chan, gboolean RpcChannel_SetRetVals(RpcInData *data, - char *result, + char const *result, gboolean retVal); +gboolean +RpcChannel_SetRetValsF(RpcInData *data, + char *result, + gboolean retVal); + void RpcChannel_UnregisterCallback(RpcChannel *chan, RpcChannelCallback *rpc); diff --git a/open-vm-tools/lib/include/vmware/tools/plugin.h b/open-vm-tools/lib/include/vmware/tools/plugin.h index cf8e319aa..d75d73d70 100644 --- a/open-vm-tools/lib/include/vmware/tools/plugin.h +++ b/open-vm-tools/lib/include/vmware/tools/plugin.h @@ -414,7 +414,7 @@ typedef struct ToolsPluginSignalCb { */ typedef struct ToolsPluginData { /** Name of the application (required). */ - char *name; + char const *name; /** * List of features provided by the app. Registration of applications * happens in the same order provided by this array. diff --git a/open-vm-tools/lib/rpcChannel/bdoorChannel.c b/open-vm-tools/lib/rpcChannel/bdoorChannel.c index b9f3b154e..dcbd3d50d 100644 --- a/open-vm-tools/lib/rpcChannel/bdoorChannel.c +++ b/open-vm-tools/lib/rpcChannel/bdoorChannel.c @@ -173,7 +173,7 @@ RpcInShutdown(RpcChannel *chan) static gboolean RpcInSend(RpcChannel *chan, - char *data, + char const *data, size_t dataLen, char **result, size_t *resultLen) diff --git a/open-vm-tools/lib/rpcChannel/rpcChannel.c b/open-vm-tools/lib/rpcChannel/rpcChannel.c index 1f1c6c779..aa0e252d7 100644 --- a/open-vm-tools/lib/rpcChannel/rpcChannel.c +++ b/open-vm-tools/lib/rpcChannel/rpcChannel.c @@ -174,8 +174,7 @@ RpcChannelReset(RpcInData *data) msg = Str_Asprintf(NULL, "ATR %s", chan->appName); ASSERT_MEM_ALLOC(msg); - data->freeResult = TRUE; - return RPCIN_SETRETVALS(data, msg, TRUE); + return RPCIN_SETRETVALSF(data, msg, TRUE); } @@ -518,8 +517,8 @@ RpcChannel_Setup(RpcChannel *chan, /** - * Sets the result of the given RPC context to the given value. The result - * should be a NULL-terminated string. + * Sets the non-freeable result of the given RPC context to the given value. + * The result should be a NULL-terminated string. * * @param[in] data RPC context. * @param[in] result Result string. @@ -530,13 +529,41 @@ RpcChannel_Setup(RpcChannel *chan, gboolean RpcChannel_SetRetVals(RpcInData *data, - char *result, + char const *result, gboolean retVal) { ASSERT(data); + /* This cast is safe: data->result will not be freed. */ + data->result = (char *)result; + data->resultLen = strlen(data->result); + data->freeResult = FALSE; + + return retVal; +} + + +/** + * Sets the freeable result of the given RPC context to the given value. + * The result should be a NULL-terminated string. + * + * @param[in] data RPC context. + * @param[in] result Result string. + * @param[in] retVal Return value of this function. + * + * @return @a retVal + */ + +gboolean +RpcChannel_SetRetValsF(RpcInData *data, + char *result, + gboolean retVal) +{ + ASSERT(data); + data->result = result; data->resultLen = strlen(data->result); + data->freeResult = TRUE; return retVal; } diff --git a/open-vm-tools/services/plugins/dndcp/copyPasteDnDWrapper.cpp b/open-vm-tools/services/plugins/dndcp/copyPasteDnDWrapper.cpp index a8bc97bd6..a8955af15 100644 --- a/open-vm-tools/services/plugins/dndcp/copyPasteDnDWrapper.cpp +++ b/open-vm-tools/services/plugins/dndcp/copyPasteDnDWrapper.cpp @@ -516,7 +516,7 @@ CopyPasteDnDWrapper::OnCapReg(gboolean set) g_debug("%s: enter\n", __FUNCTION__); char *reply; size_t replyLen; - char *toolsDnDVersion = TOOLS_DND_VERSION_3; + char const *toolsDnDVersion = TOOLS_DND_VERSION_3; char *toolsCopyPasteVersion = NULL; int version; @@ -532,7 +532,8 @@ CopyPasteDnDWrapper::OnCapReg(gboolean set) version = 1; SetDnDVersion(version); } else { - char *vmxDnDVersion = QUERY_VMX_DND_VERSION; + char const *vmxDnDVersion = QUERY_VMX_DND_VERSION; + if (!RpcChannel_Send(ctx->rpc, vmxDnDVersion, strlen(vmxDnDVersion), &reply, &replyLen)) { g_debug("%s: could not get VMX dnd version capability, assuming v1\n", @@ -561,7 +562,8 @@ CopyPasteDnDWrapper::OnCapReg(gboolean set) version = 1; SetCPVersion(version); } else { - char *vmxCopyPasteVersion = QUERY_VMX_COPYPASTE_VERSION; + char const *vmxCopyPasteVersion = QUERY_VMX_COPYPASTE_VERSION; + if (!RpcChannel_Send(ctx->rpc, vmxCopyPasteVersion, strlen(vmxCopyPasteVersion), &reply, &replyLen)) { g_debug("%s: could not get VMX copypaste version capability, assuming v1\n", diff --git a/open-vm-tools/tests/vmrpcdbg/debugChannel.c b/open-vm-tools/tests/vmrpcdbg/debugChannel.c index 3251dfe43..b8e0e008a 100644 --- a/open-vm-tools/tests/vmrpcdbg/debugChannel.c +++ b/open-vm-tools/tests/vmrpcdbg/debugChannel.c @@ -173,7 +173,7 @@ RpcDebugStop(RpcChannel *chan) static gboolean RpcDebugSend(RpcChannel *chan, - char *data, + char const *data, size_t dataLen, char **result, size_t *resultLen)