On Fri,  8 Feb 2019 13:27:37 +0000
Pallantla Poornima <pallantlax.poorn...@intel.com> wrote:

> diff --git a/test/test/commands.c b/test/test/commands.c
> index 94fbc310e..5aeb35498 100644
> --- a/test/test/commands.c
> +++ b/test/test/commands.c
> @@ -367,6 +367,8 @@ int commands_init(void)
>       struct test_command *t;
>       char *commands, *ptr;
>       int commands_len = 0;
> +     int total_written = 0;
> +     int count = 0;
>  
>       TAILQ_FOREACH(t, &commands_list, next) {
>               commands_len += strlen(t->command) + 1;
> @@ -378,7 +380,10 @@ int commands_init(void)
>  
>       ptr = commands;
>       TAILQ_FOREACH(t, &commands_list, next) {
> -             ptr += sprintf(ptr, "%s#", t->command);
> +             count = snprintf(ptr, commands_len - total_written - 1, "%s#",
> +                             t->command);
> +             ptr += count;
> +             total_written += count;

You know snprintf is dangerous in this case as well.
It returns the number of bytes that would have been written.

That is why the linux kernel introduced scnprintf.

Reply via email to