Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Jan 2019 13:36:10 -0800 (PST)
From:      "Rodney W. Grimes" <freebsd@pdx.rh.CN85.dnsmgr.net>
To:        Stefan Esser <se@freebsd.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r343480 - head/lib/libfigpar
Message-ID:  <201901262136.x0QLaAJv095518@pdx.rh.CN85.dnsmgr.net>
In-Reply-To: <201901262130.x0QLUQnf002874@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
> Author: se
> Date: Sat Jan 26 21:30:26 2019
> New Revision: 343480
> URL: https://svnweb.freebsd.org/changeset/base/343480
> 
> Log:
>   Silence Clang Scan warning about potentially unsafe use of strcpy.
>   
>   While this is a false positive, the use of strdup() simplifies the code.

Though that might be true, it also has to recalculate the
length of the string which was already known by slen.

I am not sure how often this code is called,
but that is wasted cycles in a library.

>   
>   MFC after:	2 weeks
> 
> Modified:
>   head/lib/libfigpar/string_m.c
> 
> Modified: head/lib/libfigpar/string_m.c
> ==============================================================================
> --- head/lib/libfigpar/string_m.c	Sat Jan 26 20:43:28 2019	(r343479)
> +++ head/lib/libfigpar/string_m.c	Sat Jan 26 21:30:26 2019	(r343480)
> @@ -119,10 +119,9 @@ replaceall(char *source, const char *find, const char 
>  
>  	/* If replace is longer than find, we'll need to create a temp copy */
>  	if (rlen > flen) {
> -		temp = malloc(slen + 1);
> -		if (errno != 0) /* could not allocate memory */
> +		temp = strdup(source);
> +		if (temp == NULL) /* could not allocate memory */
>  			return (-1);
> -		strcpy(temp, source);
>  	} else
>  		temp = source;
>  
> 
> 

-- 
Rod Grimes                                                 rgrimes@freebsd.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201901262136.x0QLaAJv095518>