]> git.proxmox.com Git - mirror_qemu.git/commit - qemu-img.c
qemu-img: Move is_valid_option_list() to qemu-img.c and rewrite
authorMarkus Armbruster <armbru@redhat.com>
Wed, 15 Apr 2020 07:49:26 +0000 (09:49 +0200)
committerMarkus Armbruster <armbru@redhat.com>
Wed, 29 Apr 2020 06:01:52 +0000 (08:01 +0200)
commit80c710cb06ff40b45de033e4352528b3adcd2de9
tree75705e97e3babe95842ebeb51818a4f6fdc5d6f1
parent6d2b5cbafb8fb4bb3563cbf698b3a0903a993d7a
qemu-img: Move is_valid_option_list() to qemu-img.c and rewrite

is_valid_option_list()'s purpose is ensuring qemu-img.c's can safely
join multiple parameter strings separated by ',' like this:

        g_strdup_printf("%s,%s", params1, params2);

How it does that is anything but obvious.  A close reading of the code
reveals that it fails exactly when its argument starts with ',' or
ends with an odd number of ','.  Makes sense, actually, because when
the argument starts with ',', a separating ',' preceding it would get
escaped, and when it ends with an odd number of ',', a separating ','
following it would get escaped.

Move it to qemu-img.c and rewrite it the obvious way.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20200415074927.19897-9-armbru@redhat.com>
include/qemu/option.h
qemu-img.c
util/qemu-option.c