Re: [PATCH 15/18] blktrace: change strncpy+truncation to strlcpy

From: Steven Rostedt
Date: Thu Mar 14 2019 - 21:37:47 EST



Jens,

I noticed this old patch in my inbox. It looks like a legit cleanup.
Want to take it?

-- Steve


On Fri, 13 Jul 2018 03:26:02 +0200
Dominique Martinet <asmadeus@xxxxxxxxxxxxx> wrote:

> Using strlcpy fixes this new gcc warning:
> kernel/trace/blktrace.c: In function âdo_blk_trace_setupâ:
> kernel/trace/blktrace.c:497:2: warning: âstrncpyâ specified bound 32 equals destination size [-Wstringop-truncation]
> strncpy(buts->name, name, BLKTRACE_BDEV_SIZE);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Generated by scripts/coccinelle/misc/strncpy_truncation.cocci
>
> Signed-off-by: Dominique Martinet <asmadeus@xxxxxxxxxxxxx>
> ---
>
> Please see https://marc.info/?l=linux-kernel&m=153144450722324&w=2 (the
> first patch of the serie) for the motivation behind this patch
>
> kernel/trace/blktrace.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
> index 987d9a9ae283..2478d9838eab 100644
> --- a/kernel/trace/blktrace.c
> +++ b/kernel/trace/blktrace.c
> @@ -494,8 +494,7 @@ static int do_blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
> if (!buts->buf_size || !buts->buf_nr)
> return -EINVAL;
>
> - strncpy(buts->name, name, BLKTRACE_BDEV_SIZE);
> - buts->name[BLKTRACE_BDEV_SIZE - 1] = '\0';
> + strlcpy(buts->name, name, BLKTRACE_BDEV_SIZE);
>
> /*
> * some device names have larger paths - convert the slashes