On Wed, Mar 07, 2018 at 05:17:59PM -0600, Edgar Pettijohn wrote:
> This looks like a good place for reallocarray. Yes?
> 
> Index: spamd-setup.c
> ===================================================================
> RCS file: /cvs/src/libexec/spamd-setup/spamd-setup.c,v
> retrieving revision 1.50
> diff -u -p -u -r1.50 spamd-setup.c
> --- spamd-setup.c    7 Jul 2017 00:10:15 -0000    1.50
> +++ spamd-setup.c    7 Mar 2018 23:14:00 -0000
> @@ -363,7 +363,7 @@ fix_quoted_colons(char *buf)
>      char *newbuf, last;
> 
>      /* Allocate enough space for a buf of all colons (impossible). */
> -    newbuf = malloc(2 * strlen(buf) + 1);
> +    newbuf = reallocarray(NULL, 2, strlen(buf) + 1);
>      if (newbuf == NULL)
>          return (NULL);
>      last = '\0';

FWIW, the old code evaluates as

  (2 * strlen(buf)) + 1

but the new code evaluates as

  2 * (strlen(buf) + 1)

Reply via email to