Re: [PATCH] fix stack usage in fs/intermezzo/journal.c

From: Randy.Dunlap (rddunlap@osdl.org)
Date: Fri Mar 14 2003 - 11:09:30 EST


On Fri, 14 Mar 2003 16:53:52 +0100 Joern Engel <joern@wohnheim.fh-wedel.de> wrote:

| Hi!
|
| This moves two 4k buffers from stack to heap. Compiles, untested, but
| looks trivial.
| --
|
| --- linux-2.5.64/fs/intermezzo/journal.c Mon Feb 24 20:05:05 2003
| +++ linux-2.5.64-i2o/fs/intermezzo/journal.c Thu Mar 13 13:14:12 2003
| @@ -1245,6 +1245,7 @@
| struct file *f;
| int len;
| loff_t read_off, write_off, bytes;
| + char *buf;
|
| ENTRY;
|
| @@ -1255,15 +1256,18 @@
| return f;
| }
|
| + buf = kmalloc(4096, GFP_KERNEL);
| + if (!buf)
| + return ERR_PTR(-ENOMEM);
| +
| write_off = 0;
| read_off = start;
| bytes = fset->fset_kml.fd_offset - start;
| while (bytes > 0) {
| - char buf[4096];
| int toread;
|
| - if (bytes > sizeof(buf))
| - toread = sizeof(buf);
| + if (bytes > sizeof(*buf))
| + toread = sizeof(*buf);

I guess one of us needs some guidance here.
I thought that sizeof(*buf) == 1 here, not 4096. Anybody?
I don't see how sizeof() can determine the kmalloc-ed size,
so I would use BUF_SIZE instead, with
#define BUF_SIZE 4096

Same for <record> below (snipped).

--
~Randy
-
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/



This archive was generated by hypermail 2b29 : Sat Mar 15 2003 - 22:00:40 EST