[Piglit] [PATCH] util: fix off-by-one when loading source
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Sun Jan 20 18:05:44 UTC 2019
On 19/01/2019 23:49, Caio Marcelo de Oliveira Filho wrote:
> One extra character is leaking from the text into the copied line.
> The "+ 1" is an artifact from when malloc was used, strndup will add
> the extra '\0' after copying text_size bytes (if available).
>
> 7c8ee3f0f "util: simplify string duplication logic"
> ---
> tests/util/piglit-shader-test.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tests/util/piglit-shader-test.c b/tests/util/piglit-shader-test.c
> index 39df2948d..35ed3a81e 100644
> --- a/tests/util/piglit-shader-test.c
> +++ b/tests/util/piglit-shader-test.c
> @@ -140,7 +140,7 @@ piglit_load_source_from_shader_test(const char *filename,
> return false;
> }
>
> - text_size = line - first_line + 1;
> + text_size = line - first_line;
The difference between strndup & snprintf is that the former one copies
n characters plus an additional '\0' while the latter copies n
characters including '\0'.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
>
> if (output_source)
> *output_source = strndup(first_line, text_size);
More information about the Piglit
mailing list