softmmu/vl: Allow -fw_cfg 'gen_id' option to use the 'etc/' namespace
Names of user-provided fw_cfg items are supposed to start with "opt/". However FW_CFG_DATA_GENERATOR items are generated by QEMU, so allow the "etc/" namespace in this specific case. Reviewed-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20200623172726.21040-5-philmd@redhat.com>
This commit is contained in:
parent
6552d87c48
commit
f7d8afb16d
@ -258,4 +258,8 @@ Prefix "opt/org.qemu/" is reserved for QEMU itself.
|
||||
Use of names not beginning with "opt/" is potentially dangerous and
|
||||
entirely unsupported. QEMU will warn if you try.
|
||||
|
||||
Use of names not beginning with "opt/" is tolerated with 'gen_id' (that
|
||||
is, the warning is suppressed), but you must know exactly what you're
|
||||
doing.
|
||||
|
||||
All externally provided fw_cfg items are read-only to the guest.
|
||||
|
@ -2049,7 +2049,13 @@ static int parse_fw_cfg(void *opaque, QemuOpts *opts, Error **errp)
|
||||
FW_CFG_MAX_FILE_PATH - 1);
|
||||
return -1;
|
||||
}
|
||||
if (strncmp(name, "opt/", 4) != 0) {
|
||||
if (nonempty_str(gen_id)) {
|
||||
/*
|
||||
* In this particular case where the content is populated
|
||||
* internally, the "etc/" namespace protection is relaxed,
|
||||
* so do not emit a warning.
|
||||
*/
|
||||
} else if (strncmp(name, "opt/", 4) != 0) {
|
||||
warn_report("externally provided fw_cfg item names "
|
||||
"should be prefixed with \"opt/\"");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user