| From 8d0c2d10dd72c5292eda7a06231056a4c972e4cc Mon Sep 17 00:00:00 2001 |
| From: Lars-Peter Clausen <lars@metafoo.de> |
| Date: Sat, 9 Mar 2013 15:28:44 +0100 |
| Subject: ext3: Fix format string issues |
| |
| From: Lars-Peter Clausen <lars@metafoo.de> |
| |
| commit 8d0c2d10dd72c5292eda7a06231056a4c972e4cc upstream. |
| |
| ext3_msg() takes the printk prefix as the second parameter and the |
| format string as the third parameter. Two callers of ext3_msg omit the |
| prefix and pass the format string as the second parameter and the first |
| parameter to the format string as the third parameter. In both cases |
| this string comes from an arbitrary source. Which means the string may |
| contain format string characters, which will |
| lead to undefined and potentially harmful behavior. |
| |
| The issue was introduced in commit 4cf46b67eb("ext3: Unify log messages |
| in ext3") and is fixed by this patch. |
| |
| Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> |
| Signed-off-by: Jan Kara <jack@suse.cz> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/ext3/super.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/fs/ext3/super.c |
| +++ b/fs/ext3/super.c |
| @@ -353,7 +353,7 @@ static struct block_device *ext3_blkdev_ |
| return bdev; |
| |
| fail: |
| - ext3_msg(sb, "error: failed to open journal device %s: %ld", |
| + ext3_msg(sb, KERN_ERR, "error: failed to open journal device %s: %ld", |
| __bdevname(dev, b), PTR_ERR(bdev)); |
| |
| return NULL; |
| @@ -887,7 +887,7 @@ static ext3_fsblk_t get_sb_block(void ** |
| /*todo: use simple_strtoll with >32bit ext3 */ |
| sb_block = simple_strtoul(options, &options, 0); |
| if (*options && *options != ',') { |
| - ext3_msg(sb, "error: invalid sb specification: %s", |
| + ext3_msg(sb, KERN_ERR, "error: invalid sb specification: %s", |
| (char *) *data); |
| return 1; |
| } |