Re: [PATCH v2] Replace strncpy() usage by printf()

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

 



+ Avri

On Fri, 26 Nov 2021 at 15:48, Oleh Kravchenko <oleg@xxxxxxxxxx> wrote:
>
> Manpage of strncpy() says:
> If there is no null byte among the first n bytes of src,
> the string placed in dest will not be null-terminated.
>
> Put \0 to the end of the buffer to ensure that
> the destination string is NULL-terminated.

Please update the commit message to reflect what the patch really
does, as the above is no longer correct.

>
> This patch also fixes a compile error with a newer version of GCC.
>
> Signed-off-by: Oleh Kravchenko <oleg@xxxxxxxxxx>

At next submission, please also add Avri Altman <avri.altman@xxxxxxx>,
who co-maintains the mmc-utils.

> ---
>  mmc_cmds.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/mmc_cmds.c b/mmc_cmds.c
> index 73bd32a..753fcd9 100644
> --- a/mmc_cmds.c
> +++ b/mmc_cmds.c
> @@ -1392,7 +1392,6 @@ int do_read_extcsd(int nargs, char **argv)
>         __u32 regl;
>         int fd, ret;
>         char *device;
> -       char lbuf[10];
>         const char *str;
>
>         if (nargs != 2) {
> @@ -1834,9 +1833,7 @@ int do_read_extcsd(int nargs, char **argv)
>         }
>
>         if (ext_csd_rev >= 7) {
> -                memset(lbuf, 0, sizeof(lbuf));
> -               strncpy(lbuf, (char*)&ext_csd[EXT_CSD_FIRMWARE_VERSION], 8);
> -               printf("eMMC Firmware Version: %s\n", lbuf);
> +               printf("eMMC Firmware Version: %.*s\n", 8, (char*)&ext_csd[EXT_CSD_FIRMWARE_VERSION]);

This looks good to me. However, I suggest you skip the dynamic length
format. Just use %.8s.


>                 printf("eMMC Life Time Estimation A [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_A]: 0x%02x\n",
>                         ext_csd[EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_A]);
>                 printf("eMMC Life Time Estimation B [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_B]: 0x%02x\n",
> --
> 2.32.0
>

Kind regards
Uffe



[Index of Archives]     [Linux Memonry Technology]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux