]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
parse_args: redo the warnings for --remote-header-name combos
authorDaniel Stenberg <daniel@haxx.se>
Fri, 10 Sep 2021 13:28:20 +0000 (15:28 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 10 Sep 2021 15:02:21 +0000 (17:02 +0200)
... to avoid the memory leak risk pointed out by scan-build.

Follow-up from 7a3e981781d6c18a

Closes #7698

src/tool_getparam.c
src/tool_getparam.h
src/tool_helpers.c

index 56fc35cf508d78f2f5b87efd130da810449b8820..1e1827fc1391dc181972ef75301c6e22760c3b5e 100644 (file)
@@ -2384,17 +2384,11 @@ ParameterError parse_args(struct GlobalConfig *global, int argc,
       curlx_unicodefree(orig_opt);
   }
 
-  if(config->content_disposition) {
-    if(config->show_headers) {
-      helpf(global->errors, "--include and --remote-header-name "
-            "cannot be combined.\n");
-      return PARAM_BAD_USE;
-    }
-    if(config->resume_from_current) {
-      helpf(global->errors, "--continue-at - and --remote-header-name "
-            "cannot be combined.\n");
-      return PARAM_BAD_USE;
-    }
+  if(!result && config->content_disposition) {
+    if(config->show_headers)
+      result = PARAM_CONTDISP_SHOW_HEADER;
+    else if(config->resume_from_current)
+      result = PARAM_CONTDISP_RESUME_FROM;
   }
 
   if(result && result != PARAM_HELP_REQUESTED &&
index 2c24d4835e28085b71afcb5b0ddba3fb87e405f6..599a0ac8858bcf33b3618928de3ff137c2516a0e 100644 (file)
@@ -7,7 +7,7 @@
  *                            | (__| |_| |  _ <| |___
  *                             \___|\___/|_| \_\_____|
  *
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, Daniel Stenberg, <daniel@haxx.se>, et al.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution. The terms
@@ -43,6 +43,8 @@ typedef enum {
   PARAM_NO_PREFIX,
   PARAM_NUMBER_TOO_LARGE,
   PARAM_NO_NOT_BOOLEAN,
+  PARAM_CONTDISP_SHOW_HEADER, /* --include and --remote-header-name */
+  PARAM_CONTDISP_RESUME_FROM, /* --continue-at and --remote-header-name */
   PARAM_LAST
 } ParameterError;
 
index 8cd2ac58a4729b0d3ca5f21a6fb6dd4ebc891d02..04b0510be8dc8cceb736d9716a220c58437570d2 100644 (file)
@@ -5,7 +5,7 @@
  *                            | (__| |_| |  _ <| |___
  *                             \___|\___/|_| \_\_____|
  *
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, Daniel Stenberg, <daniel@haxx.se>, et al.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution. The terms
@@ -68,6 +68,10 @@ const char *param2text(int res)
     return "too large number";
   case PARAM_NO_NOT_BOOLEAN:
     return "used '--no-' for option that isn't a boolean";
+  case PARAM_CONTDISP_SHOW_HEADER:
+    return "--include and --remote-header-name cannot be combined";
+  case PARAM_CONTDISP_RESUME_FROM:
+    return "--continue-at and --remote-header-name cannot be combined";
   default:
     return "unknown error";
   }