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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.