]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
elf-util: drop assertion for metadata in report_module_metadata()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 14 Oct 2022 08:18:41 +0000 (17:18 +0900)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 14 Oct 2022 16:08:11 +0000 (18:08 +0200)
Fixes a bug introduced by 1a0281a3ebf4f8c16d40aa9e63103f16cd23bb2a.

Fixes RHBZ#2134741 (https://bugzilla.redhat.com/show_bug.cgi?id=2134741).

src/shared/elf-util.c

index 6e4a94a048a2dab5cc032a8b38f9662f0059cd89..c0f540abc50a737a52c95426161f4db37e57a093 100644 (file)
@@ -293,29 +293,30 @@ static char* build_package_reference(
 static void report_module_metadata(StackContext *c, const char *name, JsonVariant *metadata) {
         assert(c);
         assert(name);
-        assert(metadata);
 
         if (!c->f)
                 return;
 
-        const char
-                *build_id = json_variant_string(json_variant_by_key(metadata, "buildId")),
-                *type = json_variant_string(json_variant_by_key(metadata, "type")),
-                *package = json_variant_string(json_variant_by_key(metadata, "name")),
-                *version = json_variant_string(json_variant_by_key(metadata, "version")),
-                *arch = json_variant_string(json_variant_by_key(metadata, "architecture"));
-
         fprintf(c->f, "Module %s", name);
 
-        if (package) {
-                /* Version/architecture is only meaningful with a package name.
-                 * Skip the detailed fields if package is unknown. */
-                _cleanup_free_ char *id = build_package_reference(type, package, version, arch);
-                fprintf(c->f, " from %s", strnull(id));
-        }
+        if (metadata) {
+                const char
+                        *build_id = json_variant_string(json_variant_by_key(metadata, "buildId")),
+                        *type = json_variant_string(json_variant_by_key(metadata, "type")),
+                        *package = json_variant_string(json_variant_by_key(metadata, "name")),
+                        *version = json_variant_string(json_variant_by_key(metadata, "version")),
+                        *arch = json_variant_string(json_variant_by_key(metadata, "architecture"));
+
+                if (package) {
+                        /* Version/architecture is only meaningful with a package name.
+                         * Skip the detailed fields if package is unknown. */
+                        _cleanup_free_ char *id = build_package_reference(type, package, version, arch);
+                        fprintf(c->f, " from %s", strnull(id));
+                }
 
-        if (build_id && !(package && version))
-                fprintf(c->f, ", build-id=%s", build_id);
+                if (build_id && !(package && version))
+                        fprintf(c->f, ", build-id=%s", build_id);
+        }
 
         fputs("\n", c->f);
 }