Re: [patch 3/4] skd: use strncpy() as a cleanup

From: Geert Uytterhoeven
Date: Fri Sep 13 2013 - 08:03:38 EST


On Fri, Sep 13, 2013 at 10:05 AM, Dan Carpenter
<dan.carpenter@xxxxxxxxxx> wrote:
> The code here is copying the version to inq.driver_version but we don't
> want it to be NUL terminated. Instead we pad the rest of the array with
> spaces. It's fewer lines to use strncpy() and maybe a little nicer.
>
> Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
>
> diff --git a/drivers/block/skd_main.c b/drivers/block/skd_main.c
> index f892d95..20ad843 100644
> --- a/drivers/block/skd_main.c
> +++ b/drivers/block/skd_main.c
> @@ -2899,9 +2899,7 @@ static void skd_do_inq_page_da(struct skd_device *skdev,
> volatile struct fit_comp_error_info *skerr,
> uint8_t *cdb, uint8_t *buf)
> {
> - unsigned ver_byte;
> unsigned max_bytes;
> - char *ver = DRV_VER_COMPL;
> struct driver_inquiry_data inq;
> u16 val;
>
> @@ -2945,12 +2943,8 @@ static void skd_do_inq_page_da(struct skd_device *skdev,
> /* Driver version, fixed lenth, padded with spaces on the right */
> inq.driver_version_length = sizeof(inq.driver_version);
> memset(&inq.driver_version, ' ', sizeof(inq.driver_version));
> - for (ver_byte = 0; ver_byte < sizeof(inq.driver_version); ver_byte++) {
> - if (ver[ver_byte] != 0)
> - inq.driver_version[ver_byte] = ver[ver_byte];
> - else
> - break;
> - }
> + strncpy(inq.driver_version, DRV_VER_COMPL,
> + min(sizeof(inq.driver_version), strlen(DRV_VER_COMPL)));

This does the exact same thing as memcpy(), right? So why not use that?
memcpy() has much simpler semantics than strncpy().

> inq.page_length = cpu_to_be16((sizeof(inq) - 4));

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/