[PATCH] Replace StrnCpy with strlcpy

Jeremy Allison jra at samba.org
Mon Jan 7 17:59:55 UTC 2019


On Mon, Jan 07, 2019 at 03:35:10PM +0100, Volker Lendecke via samba-technical wrote:
> Hi!
> 
> Review appreciated!

Yay for standardized functions ! Thanks, RB+ and pushed.

Jeremy.

> -- 
> SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
> phone: 0551-370000-0, mailto:kontakt at sernet.de
> Gesch.F.: Dr. Johannes Loxen und Reinhild Jung
> AG Göttingen: HR-B 2816 - http://www.sernet.de

> From 2a127c53c60b0e85632256e687001ee3463e561e Mon Sep 17 00:00:00 2001
> From: Volker Lendecke <vl at samba.org>
> Date: Mon, 31 Dec 2018 07:14:48 +0100
> Subject: [PATCH 1/4] libsmb: Use strlcpy instead of StrnCpy
> 
> Signed-off-by: Volker Lendecke <vl at samba.org>
> ---
>  source3/libsmb/namequery.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/source3/libsmb/namequery.c b/source3/libsmb/namequery.c
> index 6564f4869ea..abeed972403 100644
> --- a/source3/libsmb/namequery.c
> +++ b/source3/libsmb/namequery.c
> @@ -274,7 +274,7 @@ static struct node_status *parse_node_status(TALLOC_CTX *mem_ctx, char *p,
>  
>  	p++;
>  	for (i=0;i< *num_names;i++) {
> -		StrnCpy(ret[i].name,p,15);
> +		strlcpy(ret[i].name,p,16);
>  		trim_char(ret[i].name,'\0',' ');
>  		ret[i].type = CVAL(p,15);
>  		ret[i].flags = p[16];
> -- 
> 2.11.0
> 
> 
> From 043d7c7d42cd85971253600dc1ec46e132e32ce2 Mon Sep 17 00:00:00 2001
> From: Volker Lendecke <vl at samba.org>
> Date: Mon, 31 Dec 2018 07:15:03 +0100
> Subject: [PATCH 2/4] nmbd: Use strlcpy instead of StrnCpy
> 
> Signed-off-by: Volker Lendecke <vl at samba.org>
> ---
>  source3/nmbd/nmbd_incomingdgrams.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/source3/nmbd/nmbd_incomingdgrams.c b/source3/nmbd/nmbd_incomingdgrams.c
> index 6fedcfd0255..e8980055b19 100644
> --- a/source3/nmbd/nmbd_incomingdgrams.c
> +++ b/source3/nmbd/nmbd_incomingdgrams.c
> @@ -607,7 +607,7 @@ static void send_backup_list_response(struct subnet_record *subrec,
>      if(!(servrec->serv.type & SV_TYPE_BACKUP_BROWSER))
>        continue;
>  
> -    StrnCpy(p, servrec->serv.name, 15);
> +    strlcpy(p, servrec->serv.name, 16);
>      strupper_m(p);
>      count++;
>  
> -- 
> 2.11.0
> 
> 
> From 874bf9f38fa360c6c2e699758b48859ed5672222 Mon Sep 17 00:00:00 2001
> From: Volker Lendecke <vl at samba.org>
> Date: Mon, 31 Dec 2018 07:15:21 +0100
> Subject: [PATCH 3/4] smbd: Use strlcpy instead of StrnCpy
> 
> Signed-off-by: Volker Lendecke <vl at samba.org>
> ---
>  source3/smbd/lanman.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/source3/smbd/lanman.c b/source3/smbd/lanman.c
> index dcc7f916d6e..9637194f697 100644
> --- a/source3/smbd/lanman.c
> +++ b/source3/smbd/lanman.c
> @@ -364,7 +364,7 @@ static int package(struct pack_desc *p, ...)
>  			{
>  				char *s = va_arg(args,char*);
>  				if (p->buflen >= needed) {
> -					StrnCpy(p->structbuf,s?s:"",needed-1);
> +					strlcpy(p->structbuf,s?s:"",needed);
>  				}
>  			}
>  			break;
> -- 
> 2.11.0
> 
> 
> From 13d60b9ee4f42446d2e263c90e41642d2a3509d0 Mon Sep 17 00:00:00 2001
> From: Volker Lendecke <vl at samba.org>
> Date: Mon, 31 Dec 2018 07:16:29 +0100
> Subject: [PATCH 4/4] lib: Remove StrnCpy
> 
> Signed-off-by: Volker Lendecke <vl at samba.org>
> ---
>  source3/include/proto.h |  1 -
>  source3/lib/util_str.c  | 26 --------------------------
>  2 files changed, 27 deletions(-)
> 
> diff --git a/source3/include/proto.h b/source3/include/proto.h
> index d2f9986c244..c92d9921d6e 100644
> --- a/source3/include/proto.h
> +++ b/source3/include/proto.h
> @@ -574,7 +574,6 @@ size_t str_charnum(const char *s);
>  bool trim_char(char *s,char cfront,char cback);
>  bool strhasupper(const char *s);
>  bool strhaslower(const char *s);
> -char *StrnCpy(char *dest,const char *src,size_t n);
>  bool in_list(const char *s, const char *list, bool casesensitive);
>  void fstring_sub(char *s,const char *pattern,const char *insert);
>  char *realloc_string_sub2(char *string,
> diff --git a/source3/lib/util_str.c b/source3/lib/util_str.c
> index eb36478d8a2..8568af46c17 100644
> --- a/source3/lib/util_str.c
> +++ b/source3/lib/util_str.c
> @@ -171,32 +171,6 @@ bool trim_char(char *s,char cfront,char cback)
>  }
>  
>  /**
> - Like strncpy but always null terminates. Make sure there is room!
> - The variable n should always be one less than the available size.
> -**/
> -char *StrnCpy(char *dest,const char *src,size_t n)
> -{
> -	char *d = dest;
> -
> -	if (!dest) {
> -		smb_panic("ERROR: NULL dest in StrnCpy");
> -	}
> -
> -	if (!src) {
> -		*dest = 0;
> -		return(dest);
> -	}
> -
> -	while (n-- && (*d = *src)) {
> -		d++;
> -		src++;
> -	}
> -
> -	*d = 0;
> -	return(dest);
> -}
> -
> -/**
>   Check if a string is part of a list.
>  **/
>  
> -- 
> 2.11.0
> 




More information about the samba-technical mailing list