summaryrefslogtreecommitdiff
path: root/lib/replace
diff options
context:
space:
mode:
authorDavid Disseldorp <ddiss@samba.org>2015-03-26 12:21:44 +0100
committerMichael Adam <obnox@samba.org>2015-03-26 14:54:20 +0100
commitd02840a3a4d113e17a4225b0e7b1c893634a31d9 (patch)
tree5b2d9e6f8739c3ca36eb55e6f35ab15470ef4e87 /lib/replace
parent4cc51f905cb5cd80d2e289a124c0fe1630d945b5 (diff)
downloadsamba-d02840a3a4d113e17a4225b0e7b1c893634a31d9.tar.gz
replace: clean-up strlcpy and add note on return value
The existing implementation uses single line ifs, making the code hard to visually parse. Signed-off-by: David Disseldorp <ddiss@samba.org> Reviewed-by: Michael Adam <obnox@samba.org>
Diffstat (limited to 'lib/replace')
-rw-r--r--lib/replace/replace.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/replace/replace.c b/lib/replace/replace.c
index 2a9ca3e5abb..9fae44aa5cf 100644
--- a/lib/replace/replace.c
+++ b/lib/replace/replace.c
@@ -64,14 +64,22 @@ int rep_ftruncate(int f, off_t l)
#ifndef HAVE_STRLCPY
-/* like strncpy but does not 0 fill the buffer and always null
- terminates. bufsize is the size of the destination buffer */
+/*
+ * Like strncpy but does not 0 fill the buffer and always null
+ * terminates. bufsize is the size of the destination buffer.
+ * Returns the length of s.
+ */
size_t rep_strlcpy(char *d, const char *s, size_t bufsize)
{
size_t len = strlen(s);
size_t ret = len;
- if (bufsize <= 0) return 0;
- if (len >= bufsize) len = bufsize-1;
+
+ if (bufsize <= 0) {
+ return 0;
+ }
+ if (len >= bufsize) {
+ len = bufsize - 1;
+ }
memcpy(d, s, len);
d[len] = 0;
return ret;