summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Colomar <alx@kernel.org>2023-11-21 18:57:19 +0100
committerAlejandro Colomar <alx@kernel.org>2023-11-21 19:30:48 +0100
commit7f19af3783237251da741a3a1a3a0c29740c5c74 (patch)
tree8d3f517a7450128e3ea89bcd98bdad5c5df524be
parent2f5a642435bf537fa306f0a7c74f0ac66f58e4bb (diff)
stpncpy.3: Optimize possible implementation of stpncpy()
Don't zero twice, since it can be confusing. Since bzero(3) returns void, we need memset(3) here. Reported-by: Paul Eggert <eggert@cs.ucla.edu> Cowritten-by: Paul Eggert <eggert@cs.ucla.edu> Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r--man3/stpncpy.36
1 files changed, 4 insertions, 2 deletions
diff --git a/man3/stpncpy.3 b/man3/stpncpy.3
index 0773810a6..53a08bb7a 100644
--- a/man3/stpncpy.3
+++ b/man3/stpncpy.3
@@ -62,8 +62,10 @@ strncpy(char *restrict dst, const char *restrict src, size_t sz)
char *
stpncpy(char *restrict dst, const char *restrict src, size_t sz)
{
- bzero(dst, sz);
- return mempcpy(dst, src, strnlen(src, sz));
+ size_t dlen;
+
+ dlen = strnlen(src, sz);
+ return memset(mempcpy(dst, src, dlen), 0, sz \- dlen);
}
.EE
.in