瀏覽代碼

[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 18 年之前
父節點
當前提交
632dd2053a
共有 1 個文件被更改,包括 2 次插入2 次删除
  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;