From: Daniel Stenberg Date: Sat, 23 Jul 2022 11:33:57 +0000 (+0200) Subject: tool_getparam: fix cleanarg() for unicode builds X-Git-Tag: curl-7_85_0~123 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=206550a9c25e2084012f616dcce90142a30a8f80;p=thirdparty%2Fcurl.git tool_getparam: fix cleanarg() for unicode builds Use the correct type, and make cleanarg an empty macro if the cleaning ability is absent. Fixes #9195 Closes #9196 Reviewed-by: Jay Satiro Reviewed-by: Marcel Raad --- diff --git a/src/tool_getparam.c b/src/tool_getparam.c index 6423c8fe1d..9bbd51d34e 100644 --- a/src/tool_getparam.c +++ b/src/tool_getparam.c @@ -541,9 +541,9 @@ static ParameterError GetSizeParameter(struct GlobalConfig *global, return PARAM_OK; } -static void cleanarg(char *str) -{ #ifdef HAVE_WRITABLE_ARGV +static void cleanarg(argv_item_t str) +{ /* now that GetStr has copied the contents of nextarg, wipe the next * argument out so that the username:password isn't displayed in the * system process list */ @@ -551,14 +551,14 @@ static void cleanarg(char *str) size_t len = strlen(str); memset(str, ' ', len); } +} #else - (void)str; +#define cleanarg(x) #endif -} ParameterError getparameter(const char *flag, /* f or -long-flag */ char *nextarg, /* NULL if unset */ - char *clearthis, + argv_item_t clearthis, bool *usedarg, /* set to TRUE if the arg has been used */ struct GlobalConfig *global, @@ -576,7 +576,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */ ParameterError err; bool toggle = TRUE; /* how to switch boolean options, on or off. Controlled by using --OPTION or --no-OPTION */ - + (void)clearthis; /* for !HAVE_WRITABLE_ARGV builds */ *usedarg = FALSE; /* default is that we don't use the arg */ if(('-' != flag[0]) || ('-' == flag[1])) { @@ -2440,7 +2440,7 @@ ParameterError parse_args(struct GlobalConfig *global, int argc, stillflags = FALSE; else { char *nextarg = NULL; - char *clear = NULL; + argv_item_t clear = NULL; if(i < (argc - 1)) { nextarg = curlx_convert_tchar_to_UTF8(argv[i + 1]); if(!nextarg) { diff --git a/src/tool_getparam.h b/src/tool_getparam.h index e351361235..0564518a6a 100644 --- a/src/tool_getparam.h +++ b/src/tool_getparam.h @@ -54,7 +54,8 @@ typedef enum { struct GlobalConfig; struct OperationConfig; -ParameterError getparameter(const char *flag, char *nextarg, char *clearthis, +ParameterError getparameter(const char *flag, char *nextarg, + argv_item_t clearthis, bool *usedarg, struct GlobalConfig *global, struct OperationConfig *operation);