Re: [PATCH V2 1/2] qedi: Fix truncation of CHAP name and secret

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2018-02-06 at 05:12 -0800, Nilesh Javali wrote:
> From: Andrew Vasquez <andrew.vasquez@xxxxxxxxxx>
> 
> The data in NVRAM is not guaranteed to be NUL terminated.
> Copy the data upto the element size or to the first NUL
> in the byte-stream and then append a NUL.
> 
> Signed-off-by: Andrew Vasquez <andrew.vasquez@xxxxxxxxxx>
> Signed-off-by: Nilesh Javali <nilesh.javali@xxxxxxxxxx>
> ---
>  drivers/scsi/qedi/qedi_main.c | 45 +++++++++++++++++++++++++++++++------------
>  1 file changed, 33 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/scsi/qedi/qedi_main.c b/drivers/scsi/qedi/qedi_main.c
> index 8808f0d..f3dd438 100644
> --- a/drivers/scsi/qedi/qedi_main.c
> +++ b/drivers/scsi/qedi/qedi_main.c
> @@ -1705,6 +1705,27 @@ void qedi_reset_host_mtu(struct qedi_ctx *qedi, u16 mtu)
>  	qedi_ops->ll2->start(qedi->cdev, &params);
>  }
>  
> +static ssize_t
> +qedi_show_copy_data(char *buf, size_t size, u8 *data)
> +{
> +	size_t i;
> +
> +	if (!data)
> +		return sprintf(buf, "\n");
> +
> +	/*
> +	 * Data not guaranteed to be NUL terminated. Copy until NUL found or
> +	 * complete copy done.
> +	 */
> +	for (i = 0; i < size && data[i]; i++)
> +		buf[i] = data[i];
> +	/* Data copy complete, append NEWLINE and NUL terminator. */
> +	buf[i] = '\n';
> +	buf[i + 1] = '\0';
> +	return strlen(buf);
> +}

Can the body of the above function be changed into the following, which is much
shorter?

sprintf(buf, "%.*s", (int)size, data ? : "")

Additionally, are you aware that sysfs show callbacks do not have to terminate
data with '\0'?

Thanks,

Bart.






[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux