2002-07-05 23:11:09

by Mark Kettenis

[permalink] [raw]
Subject: [PATCH] Fix note sections in ELF core dumps

Edition 4.1 of the System V Application Binary Interface says that
"The first namesz bytes in name contains a null-terminated
representation of the entry's owner or originator". This implies that
the terminating null is included in namesz, which is corroborated by
the example that follows the description. However, this is not what
the Linux kernel does when it writes its notes into an ELF core dump.
The attached patch fixes this.

Mark

--- linux-2.5.24/fs/binfmt_elf.c.orig Fri Jun 21 00:53:51 2002
+++ linux-2.5.24/fs/binfmt_elf.c Sat Jul 6 00:43:33 2002
@@ -954,7 +954,7 @@
int sz;

sz = sizeof(struct elf_note);
- sz += roundup(strlen(en->name), 4);
+ sz += roundup(strlen(en->name) + 1, 4);
sz += roundup(en->datasz, 4);

return sz;
@@ -989,7 +989,7 @@
{
struct elf_note en;

- en.n_namesz = strlen(men->name);
+ en.n_namesz = strlen(men->name) + 1;
en.n_descsz = men->datasz;
en.n_type = men->type;