qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 4/6] qemu-option: clean up id vs. list->merge_lists


From: Paolo Bonzini
Subject: Re: [PATCH v2 4/6] qemu-option: clean up id vs. list->merge_lists
Date: Mon, 9 Nov 2020 18:17:49 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0

On 09/11/20 17:56, Markus Armbruster wrote:
Just like any other QemuOptsList, "machine" may have any number of
QemuOpts.  The ones with non-null ID happen to be ignored silently.
Known[*] trap for the unwary.

Are these all singletons?

They are never qemu_opts_find'd with non-NULL id, so I'd say they are.

If lists>merge_lists, you no longer check id_wellformed().  Easy enough
to fix: lift the check before this conditional.

Intentional: we always error with INVALID_PARAMETER, so it's pointless to check if the id is well-formed.

After the patch:

    id        fail_if_exists  merge_lists  |  return
    non-null  don't care      true         |  fail
    null      don't care      true         |  existing or else new opts
    non-null  false           false        |  abort
    non-null  true            false        |  new opts / fail if exist
    null      don't care      false        |  new opts

Still too many

Discounting the case that aborts as it's not user-controlled (it's "just" a matter of inspecting qemu_opts_create callers), the rest can be summarized as:

- merge_lists = false: singleton opts with NULL id; non-NULL id fails

- merge_lists = true: always return new opts; non-NULL id fails if dup

[*] Known to the QemuOpts cognoscenti, whose number could be
embarrasingly close to one.

Maybe not one, but a single hand certainly has a surplus of fingers.

Paolo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]