diff options
-rw-r--r-- | include/linux/blktrace_api.h | 2 | ||||
-rw-r--r-- | kernel/trace/blktrace.c | 3 |
2 files changed, 2 insertions, 3 deletions
diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h index a12f6ed91c84..afc1343df3c7 100644 --- a/include/linux/blktrace_api.h +++ b/include/linux/blktrace_api.h | |||
@@ -89,7 +89,7 @@ static inline int blk_trace_init_sysfs(struct device *dev) | |||
89 | #ifdef CONFIG_COMPAT | 89 | #ifdef CONFIG_COMPAT |
90 | 90 | ||
91 | struct compat_blk_user_trace_setup { | 91 | struct compat_blk_user_trace_setup { |
92 | char name[32]; | 92 | char name[BLKTRACE_BDEV_SIZE]; |
93 | u16 act_mask; | 93 | u16 act_mask; |
94 | u32 buf_size; | 94 | u32 buf_size; |
95 | u32 buf_nr; | 95 | u32 buf_nr; |
diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c index 7f727b34280d..f785aef65799 100644 --- a/kernel/trace/blktrace.c +++ b/kernel/trace/blktrace.c | |||
@@ -579,13 +579,12 @@ static int compat_blk_trace_setup(struct request_queue *q, char *name, | |||
579 | .end_lba = cbuts.end_lba, | 579 | .end_lba = cbuts.end_lba, |
580 | .pid = cbuts.pid, | 580 | .pid = cbuts.pid, |
581 | }; | 581 | }; |
582 | memcpy(&buts.name, &cbuts.name, 32); | ||
583 | 582 | ||
584 | ret = do_blk_trace_setup(q, name, dev, bdev, &buts); | 583 | ret = do_blk_trace_setup(q, name, dev, bdev, &buts); |
585 | if (ret) | 584 | if (ret) |
586 | return ret; | 585 | return ret; |
587 | 586 | ||
588 | if (copy_to_user(arg, &buts.name, 32)) { | 587 | if (copy_to_user(arg, &buts.name, ARRAY_SIZE(buts.name))) { |
589 | blk_trace_remove(q); | 588 | blk_trace_remove(q); |
590 | return -EFAULT; | 589 | return -EFAULT; |
591 | } | 590 | } |