Hello. Patch time (drivers/block/loop.c)

Eric Windisch (ericw@grokthis.net)
Sat, 22 Dec 2001 03:14:42 -0500


--0F1p//8PRICkK4MW
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hello. I would like to formally introduce myself to this list, as this is my first post. Of course, I would not come to the table empty handed.. I bring to you a patch ;)

I was digging around the loopback block device driver and it wasn't long before I realized that it assumes you are writing if you are not reading.. which I assume could be hazardous if there is an overflow, bad memory, or someone modifies some other code without knowledge :)

Patch attached.

I may be looking at this and the multi-device drivers in the near future as I have a need for support for partitions on these devices; I think it would be really neat if the software-raid could eventually become compatable with hardware raid.. although much slower, it may be a nice thing to have for testing purposes or a last resort for those who fry their hardware raid-controllers ;)

--
Eric Windisch
http://bwbohh.net

--0F1p//8PRICkK4MW Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="loop-badmem.diff"

--- linux/drivers/block/loop.c Fri Dec 21 12:41:53 2001 +++ linux-2.4.17-ericw/drivers/block/loop.c Sat Dec 22 02:35:17 2001 @@ -90,8 +90,10 @@ if (raw_buf != loop_buf) { if (cmd == READ) memcpy(loop_buf, raw_buf, size); - else + else if (cmd == WRITE) memcpy(raw_buf, loop_buf, size); + else + printk(KERN_ERR "loop: Illegal command, %d", cmd); } return 0; @@ -106,9 +108,11 @@ if (cmd == READ) { in = raw_buf; out = loop_buf; - } else { + } else if (cmd == WRITE) { in = loop_buf; out = raw_buf; + } else { + printk(KERN_ERR "loop: Illegal command, %d", cmd); } key = lo->lo_encrypt_key;

--0F1p//8PRICkK4MW-- - 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/