On 03/07/18 18:55, William Ahern wrote:
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)


Those pesky parenthesis. I guess I could argue that the benefits of reallocarray() outweigh the wasted memory.
However, that is probably why it hasn't been changed already.

Reply via email to