]> git.ipfire.org Git - thirdparty/systemd.git/commit
coccinelle: add SIZEOF() macro to work-around sizeof(*private) 41595/head
authorMichael Vogt <michael@amutable.com>
Sun, 12 Apr 2026 13:47:48 +0000 (15:47 +0200)
committerMichael Vogt <michael@amutable.com>
Sun, 12 Apr 2026 13:47:48 +0000 (15:47 +0200)
commit9d8d0d412fb58045abf209a9e8d4552e2676eb0c
tree628803dc24362d689c061f7fe8f6ec10c8bf42f1
parent3b8408a75684329f7826a13f7b4ee614701b38f8
coccinelle: add SIZEOF() macro to work-around sizeof(*private)

We have code like `size_t max_size = sizeof(*private)` in three
places. This is evaluated at compile time so its safe to use. However
the new pointer-deref checker in coccinelle is not smart enough to know
this and will flag those as errors. To avoid these false positives
we have some options:
1. Reorder so that we do:
```C
size_t max_size = 0;
assert(private);
max_size = sizeof(*private);
```
2. Use something like `size_t max_size = sizeof(*ASSERT_PTR(private));`
3. Place the assert before the declaration
4. Workaround coccinelle via SIZEOF(*private) that we can then hide
   via parsing_hacks.h
5. Fix coccinelle (OCaml, hard)
6. ... somehting I missed?

None of these is very appealing. I went for (4) but happy about
suggestions.
coccinelle/parsing_hacks.h
src/fundamental/assert-fundamental.h
src/shared/tpm2-util.c