From: Junio C Hamano Date: Sun, 22 Feb 2015 20:00:15 GMT Subject: Re: [PATCH] sha1_name: use strlcpy() to copy strings Message-ID: In-Reply-To: <54E8E2AA.1020300@web.de> René Scharfe writes: > Use strlcpy() instead of calling strncpy() and then setting the last > byte of the target buffer to NUL explicitly. This shortens and > simplifies the code a bit. Thanks. It makes me wonder if the longer term direction should be not to use a bound buffer for oc->path, though. > > Signed-of-by: Rene Scharfe > --- > sha1_name.c | 8 ++------ > 1 file changed, 2 insertions(+), 6 deletions(-) > > diff --git a/sha1_name.c b/sha1_name.c > index cf2a83b..95f9f8f 100644 > --- a/sha1_name.c > +++ b/sha1_name.c > @@ -1391,9 +1391,7 @@ static int get_sha1_with_context_1(const char *name, > namelen = strlen(cp); > } > > - strncpy(oc->path, cp, > - sizeof(oc->path)); > - oc->path[sizeof(oc->path)-1] = '\0'; > + strlcpy(oc->path, cp, sizeof(oc->path)); > > if (!active_cache) > read_cache(); > @@ -1443,9 +1441,7 @@ static int get_sha1_with_context_1(const char *name, > name, len); > } > hashcpy(oc->tree, tree_sha1); > - strncpy(oc->path, filename, > - sizeof(oc->path)); > - oc->path[sizeof(oc->path)-1] = '\0'; > + strlcpy(oc->path, filename, sizeof(oc->path)); > > free(new_filename); > return ret;