qemu-img: Clean up global variable shadowing
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>
This commit is contained in:
parent
82f3346ff4
commit
46bb944efd
22
qemu-img.c
22
qemu-img.c
@ -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;
|
||||
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user