[PATCH] replace: clean-up strlcpy and add note on return value

Michael Adam obnox at samba.org
Thu Mar 26 06:05:04 MDT 2015


LGTM - pushing.

On 2015-03-26 at 12:21 +0100, David Disseldorp wrote:
> The existing implementation uses single line ifs, making the code hard
> to visually parse.
> 
> Signed-off-by: David Disseldorp <ddiss at samba.org>
> ---
>  lib/replace/replace.c | 16 ++++++++++++----
>  1 file changed, 12 insertions(+), 4 deletions(-)
> 
> diff --git a/lib/replace/replace.c b/lib/replace/replace.c
> index 2a9ca3e..9fae44a 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;
> -- 
> 2.1.4
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20150326/5111df4b/attachment.pgp>


More information about the samba-technical mailing list