From: Magnus Damm <magnus@valinux.co.jp>
To: linux-kernel@vger.kernel.org
Cc: Jeremy Fitzhardinge <jeremy@goop.org>,
Vivek Goyal <vgoyal@in.ibm.com>,
magnus.damm@gmail.com, Magnus Damm <magnus@valinux.co.jp>,
Horms <horms@verge.net.au>, Dave Anderson <anderson@redhat.com>,
ebiederm@xmission.com, Jakub Jelinek <jakub@redhat.com>,
David Miller <davem@davemloft.net>
Subject: [PATCH 03/03] Elf: Fix kcore note size calculation
Date: Tue, 14 Nov 2006 22:01:14 +0900 [thread overview]
Message-ID: <20061114130114.24180.76834.sendpatchset@localhost> (raw)
In-Reply-To: <20061114130057.24180.34095.sendpatchset@localhost>
elf: fix kcore note size calculation
- Define "CORE" string as CORE_STR in single common place.
- Include terminating zero in CORE_STR length calculation for elf_buflen.
- Use roundup(,4) to include alignment in elf_buflen calculation.
Signed-off-by: Magnus Damm <magnus@valinux.co.jp>
---
fs/proc/kcore.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
--- 0002/fs/proc/kcore.c
+++ work/fs/proc/kcore.c 2006-11-14 21:17:16.000000000 +0900
@@ -22,6 +22,7 @@
#include <asm/uaccess.h>
#include <asm/io.h>
+#define CORE_STR "CORE"
static int open_kcore(struct inode * inode, struct file * filp)
{
@@ -82,10 +83,11 @@ static size_t get_kcore_size(int *nphdr,
}
*elf_buflen = sizeof(struct elfhdr) +
(*nphdr + 2)*sizeof(struct elf_phdr) +
- 3 * (sizeof(struct elf_note) + 4) +
- sizeof(struct elf_prstatus) +
- sizeof(struct elf_prpsinfo) +
- sizeof(struct task_struct);
+ 3 * ((sizeof(struct elf_note)) +
+ roundup(strlen(CORE_STR) + 1, 4)) +
+ roundup(sizeof(struct elf_prstatus), 4) +
+ roundup(sizeof(struct elf_prpsinfo), 4) +
+ roundup(sizeof(struct task_struct), 4);
*elf_buflen = PAGE_ALIGN(*elf_buflen);
return size + *elf_buflen;
}
@@ -210,7 +212,7 @@ static void elf_kcore_store_hdr(char *bu
nhdr->p_offset = offset;
/* set up the process status */
- notes[0].name = "CORE";
+ notes[0].name = CORE_STR;
notes[0].type = NT_PRSTATUS;
notes[0].datasz = sizeof(struct elf_prstatus);
notes[0].data = &prstatus;
@@ -221,7 +223,7 @@ static void elf_kcore_store_hdr(char *bu
bufp = storenote(¬es[0], bufp);
/* set up the process info */
- notes[1].name = "CORE";
+ notes[1].name = CORE_STR;
notes[1].type = NT_PRPSINFO;
notes[1].datasz = sizeof(struct elf_prpsinfo);
notes[1].data = &prpsinfo;
@@ -238,7 +240,7 @@ static void elf_kcore_store_hdr(char *bu
bufp = storenote(¬es[1], bufp);
/* set up the task structure */
- notes[2].name = "CORE";
+ notes[2].name = CORE_STR;
notes[2].type = NT_TASKSTRUCT;
notes[2].datasz = sizeof(struct task_struct);
notes[2].data = current;
prev parent reply other threads:[~2006-11-14 13:01 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-14 13:00 [PATCH 00/03] Elf: Various fixes Magnus Damm
2006-11-14 13:01 ` [PATCH 01/03] Elf: Always define elf_addr_t in linux/elf.h Magnus Damm
2006-11-14 13:01 ` [PATCH 02/03] Elf: Include terminating zero in n_namesz Magnus Damm
2006-11-14 13:01 ` Magnus Damm [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20061114130114.24180.76834.sendpatchset@localhost \
--to=magnus@valinux.co.jp \
--cc=anderson@redhat.com \
--cc=davem@davemloft.net \
--cc=ebiederm@xmission.com \
--cc=horms@verge.net.au \
--cc=jakub@redhat.com \
--cc=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=magnus.damm@gmail.com \
--cc=vgoyal@in.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox