summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergei Trofimovich <slyich@gmail.com>2023-11-02 19:58:46 +0000
committerMark Wielaard <mark@klomp.org>2023-11-03 00:19:53 +0100
commitfb232b56ca4dc37a70fd4e581a0fc2c56dda5e0a (patch)
treee839d05d99f850001a302bf4e51a5878b8582727
parent6902b610939fbe15887905a0e2390c2f46cb1eb9 (diff)
libelf/elf_newscn.c: fix build failure against gcc-14 (-Walloc-size)upstream/master
`gcc-14` adde a new -Walloc-size warning that makes sure that size of an individual element matches size of a pointed type: https://gcc.gnu.org/PR71219 `elfutils` triggers is on `calloc()` call where member size is sued as `1`. elf_newscn.c: In function `elf_newscn`: elf_newscn.c:97:12: error: allocation of insufficient size «1» for type «Elf_ScnList» with size «16» [-Werror=alloc-size] 97 | newp = calloc (sizeof (Elf_ScnList) | ^ The change swaps arguments to pass larger value as a member size. Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
-rw-r--r--libelf/elf_newscn.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libelf/elf_newscn.c b/libelf/elf_newscn.c
index d6bdf153..ec731f75 100644
--- a/libelf/elf_newscn.c
+++ b/libelf/elf_newscn.c
@@ -94,9 +94,9 @@ elf_newscn (Elf *elf)
1
#endif
)
- newp = calloc (sizeof (Elf_ScnList)
- + ((elf->state.elf.scnincr *= 2)
- * sizeof (Elf_Scn)), 1);
+ newp = calloc (1, sizeof (Elf_ScnList)
+ + ((elf->state.elf.scnincr *= 2)
+ * sizeof (Elf_Scn)));
if (newp == NULL)
{
__libelf_seterrno (ELF_E_NOMEM);