Pārlūkot izejas kodu

[PATCH] kdump proc vmcore size oveflow fix

A couple of /proc/vmcore data structures overflow with 32bit systems having
memory more than 4G.  This patch fixes those.

Signed-off-by: Ken'ichi Ohmichi <oomichi@mxs.nes.nec.co.jp>
Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Vivek Goyal 19 gadi atpakaļ
vecāks
revīzija
80e8ff6341
2 mainītis faili ar 3 papildinājumiem un 3 dzēšanām
  1. 2 2
      fs/proc/vmcore.c
  2. 1 1
      include/linux/proc_fs.h

+ 2 - 2
fs/proc/vmcore.c

@@ -103,8 +103,8 @@ static ssize_t read_vmcore(struct file *file, char __user *buffer,
 				size_t buflen, loff_t *fpos)
 				size_t buflen, loff_t *fpos)
 {
 {
 	ssize_t acc = 0, tmp;
 	ssize_t acc = 0, tmp;
-	size_t tsz, nr_bytes;
-	u64 start;
+	size_t tsz;
+	u64 start, nr_bytes;
 	struct vmcore *curr_m = NULL;
 	struct vmcore *curr_m = NULL;
 
 
 	if (buflen == 0 || *fpos >= vmcore_size)
 	if (buflen == 0 || *fpos >= vmcore_size)

+ 1 - 1
include/linux/proc_fs.h

@@ -79,7 +79,7 @@ struct kcore_list {
 struct vmcore {
 struct vmcore {
 	struct list_head list;
 	struct list_head list;
 	unsigned long long paddr;
 	unsigned long long paddr;
-	unsigned long size;
+	unsigned long long size;
 	loff_t offset;
 	loff_t offset;
 };
 };