Re: [PATCH] usb: dwc3: debug: remove redundant call to strlen

From: Dan Carpenter
Date: Mon Feb 10 2020 - 03:35:03 EST


On Sat, Feb 08, 2020 at 04:25:08PM +0000, Colin King wrote:
> From: Colin Ian King <colin.king@xxxxxxxxxxxxx>
>
> The call to strlen is redundant since the return value is assigned
> to variable len but not subsequently used. Remove the redundant
> call.
>
> Addresses-Coverity: ("Unused value")
> Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
> ---
> drivers/usb/dwc3/debug.h | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/usb/dwc3/debug.h b/drivers/usb/dwc3/debug.h
> index e56beb9d1e36..ee964352c8e2 100644
> --- a/drivers/usb/dwc3/debug.h
> +++ b/drivers/usb/dwc3/debug.h
> @@ -296,8 +296,6 @@ static inline const char *dwc3_ep_event_string(char *str, size_t size,
> status & DEPEVT_STATUS_TRANSFER_ACTIVE ?
> " (Active)" : " (Not Active)");
>
> - len = strlen(str);

This code is buggy. It's a mixup between ret and len. Get rid of "ret"
and use "len" throughout.

Unlike userspace snprintf() the kernel version always returns a positive
value. It returns the number of bytes that would have been copied if
there were enough space. This code should probably be changed to use
scnprintf() which returns the number of bytes which were copied
successfully.

The remove all the strlen() calls. It should just be += the return.

len += scnprintf(str + len, size - len, "Transfer Not Ready [%d] %s",
event->parameters,
status & DEPEVT_STATUS_TRANSFER_ACTIVE ?
"(Active)" : "(Not Active)");

regards,
dan carpenter