diff options
author | Lennart Poettering <lennart@poettering.net> | 2019-07-12 09:06:28 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2019-07-12 09:11:40 +0200 |
commit | 7d025debfadc82391a5f3e7228c24cef6f199981 (patch) | |
tree | 7d26f46451eb17b41e356f7243ecb94c2fb33552 /src/basic/alloc-util.h | |
parent | 27dd6e1b1204fbea507f50e9aadde1c5b5f0ac18 (diff) | |
download | systemd-7d025debfadc82391a5f3e7228c24cef6f199981.tar.gz |
alloc-util: drop _alloc_(2, 3) decorator from memdup_suffix0_multiply()
This decorator tells compilers that the memory we return is shorter than
it actually is, thus triggering misleading bad memory access complaints.
Fixes: #13026
Diffstat (limited to 'src/basic/alloc-util.h')
-rw-r--r-- | src/basic/alloc-util.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/basic/alloc-util.h b/src/basic/alloc-util.h index 9b20be4773..cffc737d03 100644 --- a/src/basic/alloc-util.h +++ b/src/basic/alloc-util.h @@ -112,7 +112,9 @@ _alloc_(2, 3) static inline void *memdup_multiply(const void *p, size_t size, si return memdup(p, size * need); } -_alloc_(2, 3) static inline void *memdup_suffix0_multiply(const void *p, size_t size, size_t need) { +/* Note that we can't decorate this function with _alloc_() since the returned memory area is one byte larger + * than the product of its parameters. */ +static inline void *memdup_suffix0_multiply(const void *p, size_t size, size_t need) { if (size_multiply_overflow(size, need)) return NULL; |