Re: [PATCH] cpupower: remove stringop-truncation waring

From: Shuah Khan
Date: Mon Aug 27 2018 - 13:47:10 EST


On 08/21/2018 06:02 AM, Anders Roxell wrote:
> The strncpy doesn't null terminate the string because the size is too
> short by one byte.
>
> parse.c: In function âprepare_default_configâ:
> parse.c:148:2: warning: âstrncpyâ output truncated before terminating
> nul copying 8 bytes from a string of the same length
> [-Wstringop-truncation]
> strncpy(config->governor, "ondemand", 8);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Passing the length of the input argument to strncpy() is almost always
> wrong and provides no extra benefit over strcpy(), and since 'ondemand'
> fits within 15 bytes" and it null terminates the string its safe to use
> strcpy().
>
> Fixes: 7fe2f6399a84 ("cpupowerutils - cpufrequtils extended with quite some features")
> Signed-off-by: Anders Roxell <anders.roxell@xxxxxxxxxx>
> ---
> tools/power/cpupower/bench/parse.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/power/cpupower/bench/parse.c b/tools/power/cpupower/bench/parse.c
> index 9ba8a44ad2a7..91b5b768ffd2 100644
> --- a/tools/power/cpupower/bench/parse.c
> +++ b/tools/power/cpupower/bench/parse.c
> @@ -145,7 +145,7 @@ struct config *prepare_default_config()
> config->cpu = 0;
> config->prio = SCHED_HIGH;
> config->verbose = 0;
> - strncpy(config->governor, "ondemand", 8);
> + strcpy(config->governor, "ondemand");
This change is fine, however continuing to use strncpy with sizeof(config->governor).

thanks,
-- Shuah