> On 26 Jan 2019, at 1:59 PM, Colin Percival <cperc...@tarsnap.com> wrote: > > On 1/26/19 1:36 PM, Rodney W. Grimes wrote: >>> 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. > > The length of the string was already being recalculated, by strcpy. > > It seems to me that this could be written as > > temp = malloc(slen + 1); > if (temp == NULL) /* could not allocate memory */ > return (-1); > memcpy(temp, source, slen + 1); > > which avoids both recalculating the string length and using strcpy? >
Thanks for fixing that. — Cheers, Devin >>> 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; _______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"