On Mon, 5 May 2014, Jean-Philippe Ouellet wrote:
> On Sun, May 04, 2014 at 12:17:16PM -0600, Theo de Raadt wrote:
> > We are going to completely ignore diffs which change multiple idioms
> > at once.
>
> Okay.
>
> > That is how mistakes get made.
>
> Yep, more true than I realized.

FWIW I already have some of these in my tree - I'll try to pick up the ones 
that I do not.

Comment inline.

> Here's a simpler one:
>
> Index: apps.c
> ===================================================================
> RCS file: /cvs/src/lib/libssl/src/apps/apps.c,v
> retrieving revision 1.45
> diff -u -p -r1.45 apps.c
> --- apps.c    3 May 2014 16:03:54 -0000       1.45
> +++ apps.c    4 May 2014 19:35:59 -0000
> @@ -209,13 +209,10 @@ chopup_args(ARGS * arg, char *buf, int *
>       *argc = 0;
>       *argv = NULL;
>
> -     i = 0;
>       if (arg->count == 0) {
>               arg->count = 20;
> -             arg->data = (char **)malloc(sizeof(char *) * arg->count);
> +             arg->data = calloc(arg->count, sizeof(char *));
>       }
> -     for (i = 0; i < arg->count; i++)
> -             arg->data[i] = NULL;
>
>       num = 0;
>       p = buf;

This one is a change in behaviour - if arg->count is > 0 then previously we 
zeroed arg->data; now we do not.

> @@ -232,8 +229,7 @@ chopup_args(ARGS * arg, char *buf, int *
>               if (num >= arg->count) {
>                       char **tmp_p;
>                       int tlen = arg->count + 20;
> -                     tmp_p = (char **) realloc(arg->data,
> -                         sizeof(char *) * tlen);
> +                     tmp_p = reallocarray(arg->data, tlen, sizeof(char *));
>                       if (tmp_p == NULL)
>                               return 0;
>                       arg->data = tmp_p;
> @@ -1836,9 +1832,9 @@ parse_name(char *subject, long chtype, i
>                                                * only become shorter */
>       char *buf = malloc(buflen);
>       size_t max_ne = buflen / 2 + 1; /* maximum number of name elements */
> -     char **ne_types = malloc(max_ne * sizeof(char *));
> -     char **ne_values = malloc(max_ne * sizeof(char *));
> -     int *mval = malloc(max_ne * sizeof(int));
> +     char **ne_types = reallocarray(NULL, max_ne, sizeof(char *));
> +     char **ne_values = reallocarray(NULL, max_ne, sizeof(char *));
> +     int *mval = reallocarray(NULL, max_ne, sizeof(int));
>
>       char *sp = subject, *bp = buf;
>       int i, ne_num = 0;
> Index: ca.c
> ===================================================================
> RCS file: /cvs/src/lib/libssl/src/apps/ca.c,v
> retrieving revision 1.48
> diff -u -p -r1.48 ca.c
> --- ca.c      2 May 2014 17:06:46 -0000       1.48
> +++ ca.c      4 May 2014 19:36:00 -0000
> @@ -2002,8 +2002,8 @@ again2:
>       row[DB_type][0] = 'V';
>       row[DB_type][1] = '\0';
>
> -     if ((irow = (char **)malloc(sizeof(char *) * (DB_NUMBER + 1))) ==
> -         NULL) {
> +     irow = reallocarray(NULL, DB_NUMBER + 1, sizeof(char *));
> +     if (irow == NULL) {
>               BIO_printf(bio_err, "Memory allocation failure\n");
>               goto err;
>       }
> @@ -2267,8 +2267,8 @@ do_revoke(X509 * x509, CA_DB * db, int t
>               row[DB_type][0] = 'V';
>               row[DB_type][1] = '\0';
>
> -             if ((irow = (char **)malloc(sizeof(char *) *
> -                 (DB_NUMBER + 1))) == NULL) {
> +             irow = reallocarray(NULL, DB_NUMBER + 1, sizeof(char *));
> +             if (irow == NULL) {
>                       BIO_printf(bio_err, "Memory allocation failure\n");
>                       goto err;
>               }
> Index: ecparam.c
> ===================================================================
> RCS file: /cvs/src/lib/libssl/src/apps/ecparam.c,v
> retrieving revision 1.10
> diff -u -p -r1.10 ecparam.c
> --- ecparam.c 24 Apr 2014 12:22:22 -0000      1.10
> +++ ecparam.c 4 May 2014 19:36:00 -0000
> @@ -312,7 +312,7 @@ bad:
>
>               crv_len = EC_get_builtin_curves(NULL, 0);
>
> -             curves = malloc((int) (sizeof(EC_builtin_curve) * crv_len));
> +             curves = reallocarray(NULL, crv_len, sizeof(EC_builtin_curve));
>
>               if (curves == NULL)
>                       goto end;
> Index: speed.c
> ===================================================================
> RCS file: /cvs/src/lib/libssl/src/apps/speed.c,v
> retrieving revision 1.38
> diff -u -p -r1.38 speed.c
> --- speed.c   2 May 2014 17:06:46 -0000       1.38
> +++ speed.c   4 May 2014 19:36:00 -0000
> @@ -2178,7 +2178,7 @@ do_multi(int multi)
>       int *fds;
>       static char sep[] = ":";
>
> -     fds = malloc(multi * sizeof *fds);
> +     fds = reallocarray(NULL, multi, sizeof(int));
>       for (n = 0; n < multi; ++n) {
>               if (pipe(fd) == -1) {
>                       fprintf(stderr, "pipe failure\n");
> Index: srp.c
> ===================================================================
> RCS file: /cvs/src/lib/libssl/src/apps/srp.c,v
> retrieving revision 1.10
> diff -u -p -r1.10 srp.c
> --- srp.c     24 Apr 2014 12:22:22 -0000      1.10
> +++ srp.c     4 May 2014 19:36:00 -0000
> @@ -176,7 +176,8 @@ update_index(CA_DB * db, BIO * bio, char
>       char **irow;
>       int i;
>
> -     if ((irow = (char **) malloc(sizeof(char *) * (DB_NUMBER + 1))) == NULL)
> { +   irow = reallocarray(NULL, DB_NUMBER + 1, sizeof(char *));
> +     if (irow == NULL)
>               BIO_printf(bio_err, "Memory allocation failure\n");
>               return 0;
>       }



-- 

    "Action without study is fatal. Study without action is futile."
        -- Mary Ritter Beard

Reply via email to