[igt-dev] [PATCH i-g-t] lib/igt_edid: Properly pad display descriptor strings

Petri Latvala petri.latvala at intel.com
Tue Aug 10 09:31:59 UTC 2021


On Tue, Aug 10, 2021 at 12:26:19PM +0300, Petri Latvala wrote:
> Display descriptor strings should be terminated with LF (when less
> than 13 bytes) and padded with space. Currently the termination is
> there but we're missing the padding.
> 
> As a drive-by, this fixes the below compile warning by making sure
> strncpy has enough room.
> 
> [206/1103] Compiling C object lib/libigt-igt_edid_c.a.p/igt_edid.c.o
> In file included from /usr/include/string.h:495,
>                  from ../lib/igt_edid.c:29:
> In function ‘strncpy’,
>     inlined from ‘detailed_timing_set_string’ at ../lib/igt_edid.c:186:2:
> /usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:10: warning: ‘__builtin_strncpy’ specified bound 13 equals destination size [-Wstringop-truncation]
>   106 |   return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
>       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> Signed-off-by: Petri Latvala <petri.latvala at intel.com>
> ---
>  lib/igt_edid.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/igt_edid.c b/lib/igt_edid.c
> index 6fe984d9..908959f4 100644
> --- a/lib/igt_edid.c
> +++ b/lib/igt_edid.c
> @@ -183,7 +183,8 @@ void detailed_timing_set_string(struct detailed_timing *dt,
>  
>  	np->type = type;
>  
> -	strncpy(ds->str, str, sizeof(ds->str));
> +	memset(ds->str, ' ', sizeof(ds->str));
> +	strncpy(ds->str, str, sizeof(ds->str) - 1);

And that is completely the incorrect thing to do, ignore this patch.


>  	len = strlen(str);
>  	if (len < sizeof(ds->str))
>  		ds->str[len] = '\n';
> -- 
> 2.29.2
> 


More information about the igt-dev mailing list