From f6e88aac2c30392a934507591d70a35ca1ea7acf Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 14 Oct 2022 17:18:41 +0900 Subject: [PATCH] elf-util: drop assertion for metadata in report_module_metadata() Fixes a bug introduced by 1a0281a3ebf4f8c16d40aa9e63103f16cd23bb2a. Fixes RHBZ#2134741 (https://bugzilla.redhat.com/show_bug.cgi?id=2134741). --- src/shared/elf-util.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/shared/elf-util.c b/src/shared/elf-util.c index 6e4a94a048a..c0f540abc50 100644 --- a/src/shared/elf-util.c +++ b/src/shared/elf-util.c @@ -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); } -- 2.47.3