]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
vmspawn: make sure are fine with ovmf metadata extensions
authorLennart Poettering <lennart@poettering.net>
Fri, 12 Jan 2024 14:37:15 +0000 (15:37 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 12 Jan 2024 15:03:04 +0000 (16:03 +0100)
The JSON ovmf data on Fedora at least has more fields than we expect,
ignore it.

src/vmspawn/vmspawn-util.c

index b5b5eafae6d0cf0c122e71b714c9b3a25a3f212e..6270b7ffae7f5cea968002ddd0939d4b96ac5941 100644 (file)
@@ -100,7 +100,7 @@ static int firmware_executable(const char *name, JsonVariant *v, JsonDispatchFla
                 {}
         };
 
-        return json_dispatch(v, table, 0, userdata);
+        return json_dispatch(v, table, flags, userdata);
 }
 
 static int firmware_nvram_template(const char *name, JsonVariant *v, JsonDispatchFlags flags, void *userdata) {
@@ -110,7 +110,7 @@ static int firmware_nvram_template(const char *name, JsonVariant *v, JsonDispatc
                 {}
         };
 
-        return json_dispatch(v, table, 0, userdata);
+        return json_dispatch(v, table, flags, userdata);
 }
 
 static int firmware_mapping(const char *name, JsonVariant *v, JsonDispatchFlags flags, void *userdata) {
@@ -121,7 +121,7 @@ static int firmware_mapping(const char *name, JsonVariant *v, JsonDispatchFlags
                 {}
         };
 
-        return json_dispatch(v, table, 0, userdata);
+        return json_dispatch(v, table, flags, userdata);
 }
 
 int find_ovmf_config(int search_sb, OvmfConfig **ret) {
@@ -183,7 +183,7 @@ int find_ovmf_config(int search_sb, OvmfConfig **ret) {
                 if (!fwd)
                         return -ENOMEM;
 
-                r = json_dispatch(config_json, table, 0, fwd);
+                r = json_dispatch(config_json, table, JSON_ALLOW_EXTENSIONS, fwd);
                 if (r == -ENOMEM)
                         return r;
                 if (r < 0) {