Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f36f21ec authored by Jean Delvare's avatar Jean Delvare Committed by Linus Torvalds
Browse files

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: default avatarJean Delvare <khali@linux-fr.org>
Cc: Stephen Tweedie <sct@redhat.com>
Cc: Jens Axboe <axboe@kernel.dk>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 78bb6cb9
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -476,7 +476,7 @@ int blk_trace_ioctl(struct block_device *bdev, unsigned cmd, char __user *arg)


	switch (cmd) {
	switch (cmd) {
	case BLKTRACESETUP:
	case BLKTRACESETUP:
		strcpy(b, bdevname(bdev, b));
		bdevname(bdev, b);
		ret = blk_trace_setup(q, b, bdev->bd_dev, arg);
		ret = blk_trace_setup(q, b, bdev->bd_dev, arg);
		break;
		break;
	case BLKTRACESTART:
	case BLKTRACESTART:
+1 −1
Original line number Original line Diff line number Diff line
@@ -555,7 +555,7 @@ static int compat_blk_trace_setup(struct block_device *bdev, char __user *arg)
	if (copy_from_user(&cbuts, arg, sizeof(cbuts)))
	if (copy_from_user(&cbuts, arg, sizeof(cbuts)))
		return -EFAULT;
		return -EFAULT;


	strcpy(b, bdevname(bdev, b));
	bdevname(bdev, b);


	buts = (struct blk_user_trace_setup) {
	buts = (struct blk_user_trace_setup) {
		.act_mask = cbuts.act_mask,
		.act_mask = cbuts.act_mask,
+2 −4
Original line number Original line Diff line number Diff line
@@ -2639,8 +2639,7 @@ static int ext4_mb_init_per_dev_proc(struct super_block *sb)
	struct proc_dir_entry *proc;
	struct proc_dir_entry *proc;
	char devname[64];
	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);
	sbi->s_mb_proc = proc_mkdir(devname, proc_root_ext4);


	MB_PROC_HANDLER(EXT4_MB_STATS_NAME, stats);
	MB_PROC_HANDLER(EXT4_MB_STATS_NAME, stats);
@@ -2674,8 +2673,7 @@ static int ext4_mb_destroy_per_dev_proc(struct super_block *sb)
	if (sbi->s_mb_proc == NULL)
	if (sbi->s_mb_proc == NULL)
		return -EINVAL;
		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_GROUP_PREALLOC, sbi->s_mb_proc);
	remove_proc_entry(EXT4_MB_STREAM_REQ, 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);
	remove_proc_entry(EXT4_MB_ORDER2_REQ, sbi->s_mb_proc);
+2 −2
Original line number Original line Diff line number Diff line
@@ -901,7 +901,7 @@ static void jbd2_stats_proc_init(journal_t *journal)
{
{
	char name[BDEVNAME_SIZE];
	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);
	journal->j_proc_entry = proc_mkdir(name, proc_jbd2_stats);
	if (journal->j_proc_entry) {
	if (journal->j_proc_entry) {
		proc_create_data("history", S_IRUGO, 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_t *journal)
{
{
	char name[BDEVNAME_SIZE];
	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("info", journal->j_proc_entry);
	remove_proc_entry("history", journal->j_proc_entry);
	remove_proc_entry("history", journal->j_proc_entry);
	remove_proc_entry(name, proc_jbd2_stats);
	remove_proc_entry(name, proc_jbd2_stats);