[Mesa-dev] [PATCH shader-db] run: simplify filename handling

Lionel Landwerlin lionel.g.landwerlin at intel.com
Fri Aug 10 13:20:25 UTC 2018


Maybe set out_filename = NULL (might not be initialized on Linux by 
default, according to manpage).
Either way :

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>

On 10/08/18 13:21, Eric Engestrom wrote:
> Compiler wasn't happy about strncpy() depending on the source's length and not
> the target's, but this whole thing can be simplified by simply using asprintf()
> (which is already used in this file, so no #include necessary).
>
> run.c: In function ‘main._omp_fn.0’:
> run.c:964:21: warning: ‘strncpy’ specified bound depends on the length of the source argument [-Wstringop-overflow=]
>                       strncpy(out_filename, current_shader_name,
>                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>                               strlen(current_shader_name) + 1);
>                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Signed-off-by: Eric Engestrom <eric.engestrom at intel.com>
> ---
>   run.c | 7 ++-----
>   1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/run.c b/run.c
> index 200c0f4d6ffb1a2be467..43f1bf5bdd5f160e86fd 100644
> --- a/run.c
> +++ b/run.c
> @@ -959,11 +959,8 @@ main(int argc, char **argv)
>                           continue;
>                       }
>   
> -                    char *out_filename = malloc(strlen(current_shader_name) + 5);
> -
> -                    strncpy(out_filename, current_shader_name,
> -                            strlen(current_shader_name) + 1);
> -                    out_filename = strcat(out_filename, ".bin");
> +                    char *out_filename;
> +                    asprintf(&out_filename, "%s.bin", current_shader_name);
>   
>                       fp = fopen(out_filename, "wb");
>                       fprintf(stdout,




More information about the mesa-dev mailing list