Skip to content

Commit

Permalink
qemu-img: Clean up global variable shadowing
Browse files Browse the repository at this point in the history
Fix:

  qemu-img.c:247:46: error: declaration shadows a variable in the global scope [-Werror,-Wshadow]
  static bool is_valid_option_list(const char *optarg)
                                               ^
  qemu-img.c:265:53: error: declaration shadows a variable in the global scope [-Werror,-Wshadow]
  static int accumulate_options(char **options, char *optarg)
                                                      ^
  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/getopt.h:77:14: note: previous declaration is here
  extern char *optarg;                    /* getopt(3) external variables */
               ^

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20231004120019.93101-7-philmd@linaro.org>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
  • Loading branch information
philmd authored and Markus Armbruster committed Oct 6, 2023
1 parent 82f3346 commit 46bb944
Showing 1 changed file with 11 additions and 11 deletions.
22 changes: 11 additions & 11 deletions qemu-img.c
Original file line number Diff line number Diff line change
Expand Up @@ -235,25 +235,25 @@ void help(void)
}

/*
* Is @optarg safe for accumulate_options()?
* Is @list safe for accumulate_options()?
* It is when multiple of them can be joined together separated by ','.
* To make that work, @optarg must not start with ',' (or else a
* To make that work, @list must not start with ',' (or else a
* separating ',' preceding it gets escaped), and it must not end with
* an odd number of ',' (or else a separating ',' following it gets
* escaped), or be empty (or else a separating ',' preceding it can
* escape a separating ',' following it).
*
*/
static bool is_valid_option_list(const char *optarg)
static bool is_valid_option_list(const char *list)
{
size_t len = strlen(optarg);
size_t len = strlen(list);
size_t i;

if (!optarg[0] || optarg[0] == ',') {
if (!list[0] || list[0] == ',') {
return false;
}

for (i = len; i > 0 && optarg[i - 1] == ','; i--) {
for (i = len; i > 0 && list[i - 1] == ','; i--) {
}
if ((len - i) % 2) {
return false;
Expand All @@ -262,19 +262,19 @@ static bool is_valid_option_list(const char *optarg)
return true;
}

static int accumulate_options(char **options, char *optarg)
static int accumulate_options(char **options, char *list)
{
char *new_options;

if (!is_valid_option_list(optarg)) {
error_report("Invalid option list: %s", optarg);
if (!is_valid_option_list(list)) {
error_report("Invalid option list: %s", list);
return -1;
}

if (!*options) {
*options = g_strdup(optarg);
*options = g_strdup(list);
} else {
new_options = g_strdup_printf("%s,%s", *options, optarg);
new_options = g_strdup_printf("%s,%s", *options, list);
g_free(*options);
*options = new_options;
}
Expand Down

0 comments on commit 46bb944

Please sign in to comment.