lkml.org 
[lkml]   [2003]   [May]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: 2.5.70-mm1 bootcrash, possibly RAID-1
How does the following patch look for the double free.

On Thu, 29 May 2003, Zwane Mwaikambo wrote:

> slab error in cache_free_debugcheck(): cache `size-32': double free, or memory before object was overwritten
> Call Trace:
> [<c0148da3>] kfree+0xf3/0x2e0
> [<c0366a64>] raid0_run+0x234/0x250
> [<c0366a64>] raid0_run+0x234/0x250
> [<c012529a>] printk+0x1ca/0x280
> [<c0371fa4>] do_md_run+0x2f4/0x560
> [<c0371fbb>] do_md_run+0x30b/0x560
> [<c012529a>] printk+0x1ca/0x280
> [<c03724f2>] autorun_array+0x82/0xa0
> [<c012529a>] printk+0x1ca/0x280
> [<c03726ff>] autorun_devices+0x1ef/0x230
> [<c0375569>] autostart_arrays+0x29/0xba
> [<c036f8f6>] mddev_put+0x16/0xb0
> [<c0250728>] capable+0x18/0x40
> [<c03737de>] md_ioctl+0x56e/0x5a0
> [<c0169759>] blkdev_open+0x29/0x30
> [<c015f0dc>] dentry_open+0x14c/0x230
> [<c0148c2a>] kmem_cache_free+0x1ca/0x250
> [<c02a2f0b>] blkdev_ioctl+0x8b/0x3b1
> [<c01747d6>] sys_ioctl+0x156/0x310
> [<c056f6b7>] md_run_setup+0x57/0x80
> [<c056ef28>] prepare_namespace+0x8/0xa0
> [<c01050fb>] init+0x5b/0x210
> [<c01050a0>] init+0x0/0x210
> [<c01070e5>] kernel_thread_helper+0x5/0x10

Index: linux-2.5/drivers/md/raid0.c
===================================================================
RCS file: /home/cvs/linux-2.5/drivers/md/raid0.c,v
retrieving revision 1.31
diff -u -p -B -r1.31 raid0.c
--- linux-2.5/drivers/md/raid0.c 27 May 2003 04:06:15 -0000 1.31
+++ linux-2.5/drivers/md/raid0.c 29 May 2003 06:35:17 -0000
@@ -85,10 +85,8 @@ static int create_strip_zones (mddev_t *
conf->devlist = kmalloc(sizeof(mdk_rdev_t*)*
conf->nr_strip_zones*mddev->raid_disks,
GFP_KERNEL);
- if (!conf->devlist) {
- kfree(conf);
+ if (!conf->devlist)
return 1;
- }

memset(conf->strip_zone, 0,sizeof(struct strip_zone)*
conf->nr_strip_zones);
@@ -194,7 +192,6 @@ static int create_strip_zones (mddev_t *
return 0;
abort:
kfree(conf->devlist);
- kfree(conf->strip_zone);
return 1;
}

--
function.linuxpower.ca
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 13:35    [W:0.097 / U:0.232 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site