Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

objtool: Fix calloc call for new -Walloc-size

GCC 14 introduces a new -Walloc-size included in -Wextra which errors out
like:
```
check.c: In function ‘cfi_alloc’:
check.c:294:33: error: allocation of insufficient size ‘1’ for type ‘struct cfi_state’ with size ‘320’ [-Werror=alloc-size]
294 | struct cfi_state *cfi = calloc(sizeof(struct cfi_state), 1);
| ^~~~~~
```

The calloc prototype is:
```
void *calloc(size_t nmemb, size_t size);
```

So, just swap the number of members and size arguments to match the prototype, as
we're initialising 1 struct of size `sizeof(struct ...)`. GCC then sees we're not
doing anything wrong.

Signed-off-by: Sam James <sam@gentoo.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
Link: https://lore.kernel.org/r/20231107205504.1470006-1-sam@gentoo.org

authored by

Sam James and committed by
Peter Zijlstra
e2e13630 b85ea95d

+1 -1
+1 -1
tools/objtool/check.c
··· 291 291 292 292 static struct cfi_state *cfi_alloc(void) 293 293 { 294 - struct cfi_state *cfi = calloc(sizeof(struct cfi_state), 1); 294 + struct cfi_state *cfi = calloc(1, sizeof(struct cfi_state)); 295 295 if (!cfi) { 296 296 WARN("calloc failed"); 297 297 exit(1);