[binutils-gdb] binutils: Fix calloc argument order in srconv.c

Mark Wielaard mark@sourceware.org
Mon Jan 22 17:21:22 GMT 2024


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=91e9420f18112b7046fcaeda618df07a17b7e93a

commit 91e9420f18112b7046fcaeda618df07a17b7e93a
Author: Mark Wielaard <mark@klomp.org>
Date:   Mon Jan 22 00:47:46 2024 +0100

    binutils: Fix calloc argument order in srconv.c
    
    GCC 14 will warn about calling calloc with swapped size and count
    arguments.
    
    binutils/srconv.c: In function ‘nints’:
    binutils/srconv.c:598:36: error: ‘xcalloc’ sizes specified with ‘sizeof’ in the earlier argument and not in the later argument [-Werror=calloc-transposed-args]
      598 |   return (int *) (xcalloc (sizeof (int), x));
          |                                    ^~~
    binutils/srconv.c:598:36: note: earlier argument should specify number of elements, later size of each element
    
    binutils/
    
            * srconv.c (nints): Swap xcalloc arguments.
            (wr_du): Likewise.
            (wr_dus): Likewise.

Diff:
---
 binutils/srconv.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/binutils/srconv.c b/binutils/srconv.c
index 1ff68fa08b0..7e22f7a0d4f 100644
--- a/binutils/srconv.c
+++ b/binutils/srconv.c
@@ -595,7 +595,7 @@ wr_dps_end (struct coff_section *section ATTRIBUTE_UNUSED,
 static int *
 nints (int x)
 {
-  return (int *) (xcalloc (sizeof (int), x));
+  return (int *) (xcalloc (x, sizeof (int)));
 }
 
 static void
@@ -1183,7 +1183,7 @@ wr_du (struct coff_ofile *p, struct coff_sfile *sfile, int n)
   du.spare = 0;
   du.unit = n;
   du.sections = p->nsections - 1;
-  du.san = (int *) xcalloc (sizeof (int), du.sections);
+  du.san = (int *) xcalloc (du.sections, sizeof (int));
   du.address = nints (du.sections);
   du.length = nints (du.sections);
 
@@ -1242,7 +1242,7 @@ wr_dus (struct coff_ofile *p ATTRIBUTE_UNUSED, struct coff_sfile *sfile)
   dus.efn = 0x1001;
   dus.ns = 1;			/* p->nsources; sac 14 jul 94 */
   dus.drb = nints (dus.ns);
-  dus.fname = (char **) xcalloc (sizeof (char *), dus.ns);
+  dus.fname = (char **) xcalloc (dus.ns, sizeof (char *));
   dus.spare = nints (dus.ns);
   dus.ndir = 0;
   /* Find the filenames.  */


More information about the Binutils-cvs mailing list