]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
tool_getparam: fix cleanarg() for unicode builds
authorDaniel Stenberg <daniel@haxx.se>
Sat, 23 Jul 2022 11:33:57 +0000 (13:33 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 25 Jul 2022 21:58:43 +0000 (23:58 +0200)
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
src/tool_getparam.c
src/tool_getparam.h

index 6423c8fe1d2850dc357c19024abae3a0216ada5d..9bbd51d34e77c44b67ccfb3401577a3e4179e2d8 100644 (file)
@@ -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) {
index e35136123524edd8bf30bdb33d883f850c724b5e..0564518a6af8c882665a6b87fd714390341c058c 100644 (file)
@@ -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);