[2/3] libebl: recognize FDO Packaging Metadata ELF note
Commit Message
From: Luca Boccassi <bluca@debian.org>
As defined on: https://systemd.io/COREDUMP_PACKAGE_METADATA/
this note will be used starting from Fedora 36. Allow
readelf --notes to pretty print it:
Note section [ 3] '.note.package' of 76 bytes at offset 0x2e8:
Owner Data size Type
FDO 57 FDO_PACKAGING_METADATA
Packaging Metadata: {"type":"deb","name":"fsverity-utils","version":"1.3-1"}
Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
---
libebl/ChangeLog | 5 +++++
libebl/eblobjnote.c | 4 ++++
libebl/eblobjnotetypename.c | 3 +++
3 files changed, 12 insertions(+)
@@ -1,3 +1,8 @@
+2021-12-21 Luca Boccassi <bluca@debian.org>
+
+ * eblobjnote.c (ebl_object_note): Handle NT_FDO_PACKAGING_METADATA.
+ * eblobjnotetypename.c (ebl_object_note_type_name): Likewise.
+
2021-09-06 Dmitry V. Levin <ldv@altlinux.org>
* eblopenbackend.c (openbackend): Remove cast of calloc return value.
@@ -288,6 +288,10 @@ ebl_object_note (Ebl *ebl, uint32_t namesz, const char *name, uint32_t type,
if (descsz == 0 && type == NT_VERSION)
return;
+ if (strcmp ("FDO", name) == 0 && type == NT_FDO_PACKAGING_METADATA
+ && descsz > 0 && desc[descsz - 1] == '\0')
+ printf(" Packaging Metadata: %.*s\n", (int) descsz, desc);
+
/* Everything else should have the "GNU" owner name. */
if (strcmp ("GNU", name) != 0)
return;
@@ -101,6 +101,9 @@ ebl_object_note_type_name (Ebl *ebl, const char *name, uint32_t type,
return buf;
}
+ if (strcmp (name, "FDO") == 0 && type == NT_FDO_PACKAGING_METADATA)
+ return "FDO_PACKAGING_METADATA";
+
if (strcmp (name, "GNU") != 0)
{
/* NT_VERSION is special, all data is in the name. */