Fix misuses of bdevname()
PATCH 1/1 Fix misuses of bdevname()
bdevname() fills the buffer that it is given as a parameter, so calling strcpy() or snprintf() on the returned value is redundant (and probably not guaranteed to work - I don't think strcpy and snprintf support overlapping buffers.)
Signed-off-by Jean Delvare <[email protected]>
Cc Stephen Tweedie <[email protected]>
Cc Andrew Morton <[email protected]>
Cc Jens Axboe <[email protected]>
--- block/blktrace.c | 2 +- block/compat_ioctl.c | 2 +- fs/ext4/mballoc.c | 6 ++---- fs/jbd2/journal.c | 4 ++-- 4 files changed, 6 insertions(+), 8 deletions(-)
block/blktrace.c +1 -1
@@ -476,7 +476,7 @@ int blk_trace_ioctl(struct block_deviceswitch (cmd) {case BLKTRACESETUP : -strcpy (b,bdevname (bdev, b)); +bdevname (bdev, b); ret =blk_trace_setup (q, b, bdev->bd_dev, arg);break ;case BLKTRACESTART :
block/compat_ioctl.c +1 -1
@@ -555,7 +555,7 @@ static int compat_blk_trace_setup(structif (copy_from_user (&cbuts, arg,sizeof (cbuts)))return -EFAULT ; -strcpy (b,bdevname (bdev, b)); +bdevname (bdev, b); buts = (struct blk_user_trace_setup ) { .act_mask = cbuts.act_mask,
fs/ext4/mballoc.c +2 -4
@@ -2639,8 +2639,7 @@ static int ext4_mb_init_per_dev_proc(strstruct proc_dir_entry *proc;char devname[64 ]; -snprintf (devname,sizeof (devname) -1 ,"%s" , -bdevname (sb->s_bdev, devname)); +bdevname (sb->s_bdev, devname); sbi->s_mb_proc =proc_mkdir (devname, proc_root_ext4);MB_PROC_HANDLER (EXT4_MB_STATS_NAME , stats);
@@ -2674,8 +2673,7 @@ static int ext4_mb_destroy_per_dev_proc(if (sbi->s_mb_proc ==NULL )return -EINVAL ; -snprintf (devname,sizeof (devname) -1 ,"%s" , -bdevname (sb->s_bdev, devname)); +bdevname (sb->s_bdev, devname);remove_proc_entry (EXT4_MB_GROUP_PREALLOC , sbi->s_mb_proc);remove_proc_entry (EXT4_MB_STREAM_REQ , sbi->s_mb_proc);remove_proc_entry (EXT4_MB_ORDER2_REQ , sbi->s_mb_proc);
fs/jbd2/journal.c +2 -2
@@ -901,7 +901,7 @@ static void jbd2_stats_proc_init(journal {char name[BDEVNAME_SIZE ]; -snprintf (name,sizeof (name) -1 ,"%s" ,bdevname (journal->j_dev, name)); +bdevname (journal->j_dev, name); journal->j_proc_entry =proc_mkdir (name, proc_jbd2_stats);if (journal->j_proc_entry) { proc_create_data("history", S_IRUGO, journal->j_proc_entry,
@@ -915,7 +915,7 @@ static void jbd2_stats_proc_exit(journal {char name[BDEVNAME_SIZE ]; -snprintf (name,sizeof (name) -1 ,"%s" ,bdevname (journal->j_dev, name)); +bdevname (journal->j_dev, name);remove_proc_entry ("info" , journal->j_proc_entry);remove_proc_entry ("history" , journal->j_proc_entry);remove_proc_entry (name, proc_jbd2_stats);
Signature · 1 line
Jean Delvare