Explorar el Código

[PATCH] Kcore elf note namesz field fix

o As per ELF specifications, it looks like that elf note "namesz" field
  contains the length of "name" including the size of null character.  And
  currently we are filling "namesz" without taking into the consideration
  the null character size.

o Kexec-tools performs this check deligently hence I ran into the issue
  while trying to open /proc/kcore in kexec-tools for some info.

Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Vivek Goyal hace 19 años
padre
commit
632dd2053a
Se han modificado 1 ficheros con 2 adiciones y 2 borrados
  1. 2 2
      fs/proc/kcore.c

+ 2 - 2
fs/proc/kcore.c

@@ -100,7 +100,7 @@ static int notesize(struct memelfnote *en)
 	int sz;
 	int sz;
 
 
 	sz = sizeof(struct elf_note);
 	sz = sizeof(struct elf_note);
-	sz += roundup(strlen(en->name), 4);
+	sz += roundup((strlen(en->name) + 1), 4);
 	sz += roundup(en->datasz, 4);
 	sz += roundup(en->datasz, 4);
 
 
 	return sz;
 	return sz;
@@ -116,7 +116,7 @@ static char *storenote(struct memelfnote *men, char *bufp)
 
 
 #define DUMP_WRITE(addr,nr) do { memcpy(bufp,addr,nr); bufp += nr; } while(0)
 #define DUMP_WRITE(addr,nr) do { memcpy(bufp,addr,nr); bufp += nr; } while(0)
 
 
-	en.n_namesz = strlen(men->name);
+	en.n_namesz = strlen(men->name) + 1;
 	en.n_descsz = men->datasz;
 	en.n_descsz = men->datasz;
 	en.n_type = men->type;
 	en.n_type = men->type;