summaryrefslogtreecommitdiff
path: root/src/shared/elf-util.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2022-10-14 17:18:41 +0900
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2022-10-14 18:08:11 +0200
commitf6e88aac2c30392a934507591d70a35ca1ea7acf (patch)
treea663b8171d9695d2f94f87eda278cd0baf9fc630 /src/shared/elf-util.c
parent417cbcd6be49c2792fb1ed70fefb41cb7ac3c3bf (diff)
downloadsystemd-f6e88aac2c30392a934507591d70a35ca1ea7acf.tar.gz
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).
Diffstat (limited to 'src/shared/elf-util.c')
-rw-r--r--src/shared/elf-util.c33
1 files changed, 17 insertions, 16 deletions
diff --git a/src/shared/elf-util.c b/src/shared/elf-util.c
index 6e4a94a048..c0f540abc5 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);
}