ACK: [PATCH] lib: fwts_framework: use strlcpy instead of strncpy, fixes gcc-10 build errors

ivanhu ivan.hu at canonical.com
Thu Nov 7 07:54:23 UTC 2019


On 11/4/19 7:52 PM, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> In function ‘fwts_framework_strtrunc’,
>     inlined from ‘fwts_framework_minor_test_progress’ at fwts_framework.c:470:3:
> fwts_framework.c:374:3: error: ‘strncpy’ output may be truncated copying between 0 and 247 bytes from a string of length 1023 [-Werror=stringop-truncation]
>   374 |   strncpy(dest, src, max);
>       |   ^~~~~~~~~~~~~~~~~~~~~~~
> In function ‘fwts_framework_strtrunc’,
>     inlined from ‘fwts_framework_run_test.isra’ at fwts_framework.c:596:4:
> fwts_framework.c:374:3: error: ‘strncpy’ specified bound 1024 equals destination size [-Werror=stringop-truncation]
>   374 |   strncpy(dest, src, max);
>       |   ^~~~~~~~~~~~~~~~~~~~~~~
> In function ‘fwts_framework_strtrunc’,
>     inlined from ‘fwts_framework_run_test.isra’ at fwts_framework.c:695:4:
> fwts_framework.c:374:3: error: ‘strncpy’ specified bound 1024 equals destination size [-Werror=stringop-truncation]
>   374 |   strncpy(dest, src, max);
>       |   ^~~~~~~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
>  src/lib/src/fwts_framework.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/src/lib/src/fwts_framework.c b/src/lib/src/fwts_framework.c
> index 698fa49a..8bc7b0e0 100644
> --- a/src/lib/src/fwts_framework.c
> +++ b/src/lib/src/fwts_framework.c
> @@ -26,6 +26,7 @@
>  #include <ctype.h>
>  #include <time.h>
>  #include <getopt.h>
> +#include <bsd/string.h>
>  #include <sys/utsname.h>
>  #include <sys/time.h>
>  
> @@ -371,9 +372,9 @@ static void fwts_framework_show_tests(fwts_framework *fw, const bool full)
>  static void fwts_framework_strtrunc(char *dest, const char *src, size_t max)
>  {
>  	if (src) {
> -		strncpy(dest, src, max);
> +		strlcpy(dest, src, max);
>  		if ((max > 3) && (strlen(src) > max)) {
> -			dest[max-1] = 0;
> +			dest[max-1] = '\0';
>  			dest[max-2] = '.';
>  			dest[max-3] = '.';
>  		}

Acked-by: Ivan Hu <ivan.hu at canonical.com>




More information about the fwts-devel mailing list