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