2003-02-05 21:31:48

by Randy.Dunlap

[permalink] [raw]
Subject: [PATCH] do_mounts memory leak

diff -Naur ./init/do_mounts.c%LEAK ./init/do_mounts.c
--- ./init/do_mounts.c%LEAK Thu Jan 16 18:22:02 2003
+++ ./init/do_mounts.c Tue Feb 4 21:46:58 2003
@@ -653,12 +653,6 @@
/*
* OK, time to copy in the data
*/
- buf = kmalloc(BLOCK_SIZE, GFP_KERNEL);
- if (buf == 0) {
- printk(KERN_ERR "RAMDISK: could not allocate buffer\n");
- goto done;
- }
-
if (sys_ioctl(in_fd, BLKGETSIZE, (unsigned long)&devblocks) < 0)
devblocks = 0;
else
@@ -669,6 +663,12 @@

if (devblocks == 0) {
printk(KERN_ERR "RAMDISK: could not determine device size\n");
+ goto done;
+ }
+
+ buf = kmalloc(BLOCK_SIZE, GFP_KERNEL);
+ if (buf == 0) {
+ printk(KERN_ERR "RAMDISK: could not allocate buffer\n");
goto done;
}


Attachments:
mounts-memleak.patch (724.00 B)