[PATCH] Add missing overflow check in get_blkdev_list
authorNeil Horman <nhorman@redhat.com>
Tue, 6 Sep 2005 22:17:30 +0000 (15:17 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 7 Sep 2005 23:57:30 +0000 (16:57 -0700)
Patch to clean up missing overflow check in get_blkdev_list.  The printf
which adds the "Block Devices" string in /proc/devices can overflow the
presented page if get_chrdev_list eats up the entire 4k space.

Signed-off-by: Neil Horman <nhorman@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/block/genhd.c

index 47fd3659a061786967d2d150b5e9ba3212057bc9..d42840cc0d1dfcd0fad18fca25041c04ac69661a 100644 (file)
@@ -45,7 +45,7 @@ int get_blkdev_list(char *p, int used)
        struct blk_major_name *n;
        int i, len;
 
-       len = sprintf(p, "\nBlock devices:\n");
+       len = snprintf(p, (PAGE_SIZE-used), "\nBlock devices:\n");
 
        down(&block_subsys_sem);
        for (i = 0; i < ARRAY_SIZE(major_names); i++) {