Re: [PATCH] bcache-tools: fix strncpy compiler warning in replace_line()

Coly Li <[email protected]>
Newsgroups org.kernel.vger.linux-bcache
Message-ID <5tby4oc6ibrx3a5uxv6mgc3sfniocwtzmlujtljonhaqd7o2dy@nzrsnoxfysbn>
On Tue, Jun 24, 2025 at 08:19:40PM +0800, Shaoxiong Li wrote:
> The strncpy() call in replace_line() was using strlen(src) as the size
> parameter instead of the destination buffer size, causing a compiler
> warning about potential string truncation. use snprintf() instead.
> 
> Signed-off-by: Shaoxiong Li <[email protected]>

Thanks for the fixup. Applied.

> ---
>  bcache.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/bcache.c b/bcache.c
> index f99d2dc..47d45e9 100644
> --- a/bcache.c
> +++ b/bcache.c
> @@ -142,7 +142,7 @@ int setlabel_usage(void)
>  	return EXIT_FAILURE;
>  }
>  
> -int version_usagee(void)
> +int version_usage(void)
>  {
>  	fprintf(stderr,
>  		"Usage: version		display software version\n");
> @@ -157,7 +157,7 @@ void replace_line(char **dest, const char *from, const char *to)
>  
>  	strcpy(sub, *dest);
>  	while (1) {
> -		char *tmp = strpbrk(sub, from);
> +		char *tmp = strstr(sub, from);
>  
>  		if (tmp != NULL) {
>  			strcpy(new, tmp);
> @@ -166,7 +166,7 @@ void replace_line(char **dest, const char *from, const char *to)
>  			break;
>  	}
>  	if (strlen(new) > 0) {
> -		strncpy(new, to, strlen(to));
> +		snprintf(new, sizeof(new), "%s", to);
>  		sprintf(*dest + strlen(*dest) - strlen(new), new, strlen(new));
>  	}
>  }
> @@ -453,7 +453,7 @@ int main(int argc, char **argv)
>  		return set_label(devname, argv[2]);
>  	} else if (strcmp(subcmd, "version") == 0) {
>  		if (argc != 1)
> -			return version_usagee();
> +			return version_usage();
>  		printf("bcache-tools %s\n", BCACHE_TOOLS_VERSION);
>  
>  		return 0;
> -- 
> 2.43.0
> 

-- 
Coly Li
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.