Messages in this thread | ![/](/images/icornerl.gif) | | Date | Fri, 14 Mar 2003 08:09:30 -0800 | From | "Randy.Dunlap" <> | Subject | Re: [PATCH] fix stack usage in fs/intermezzo/journal.c |
| |
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/
| ![\](/images/icornerr.gif) |