diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2023-09-11 18:53:31 +0300 |
---|---|---|
committer | Jia Tan <jiat0218@gmail.com> | 2023-10-31 01:03:25 +0800 |
commit | 359e5c6cb128dab64ea6070d21d1c240f96cea6b (patch) | |
tree | ca4bdd6a809e02378a860dbefcf6b13d43d0150b /src | |
parent | Update THANKS. (diff) | |
download | xz-359e5c6cb128dab64ea6070d21d1c240f96cea6b.tar.xz |
Remove incorrect uses of __attribute__((__malloc__)).
xrealloc() is obviously incorrect, modern GCC docs even
mention realloc() as an example where this attribute
cannot be used.
liblzma's lzma_alloc() and lzma_alloc_zero() would be
correct uses most of the time but custom allocators
may use a memory pool or otherwise hold the pointer
so aliasing issues could happen in theory.
The xstrdup() case likely was correct but I removed it anyway.
Now there are no __malloc__ attributes left in the code.
The allocations aren't in hot paths so this should make
no practical difference.
Diffstat (limited to '')
-rw-r--r-- | src/liblzma/common/common.c | 4 | ||||
-rw-r--r-- | src/liblzma/common/common.h | 4 | ||||
-rw-r--r-- | src/xz/util.h | 4 |
3 files changed, 6 insertions, 6 deletions
diff --git a/src/liblzma/common/common.c b/src/liblzma/common/common.c index baad3dd8..02a10641 100644 --- a/src/liblzma/common/common.c +++ b/src/liblzma/common/common.c @@ -35,7 +35,7 @@ lzma_version_string(void) // Memory allocation // /////////////////////// -extern void * lzma_attribute((__malloc__)) lzma_attr_alloc_size(1) +extern void * lzma_attr_alloc_size(1) lzma_alloc(size_t size, const lzma_allocator *allocator) { // Some malloc() variants return NULL if called with size == 0. @@ -53,7 +53,7 @@ lzma_alloc(size_t size, const lzma_allocator *allocator) } -extern void * lzma_attribute((__malloc__)) lzma_attr_alloc_size(1) +extern void * lzma_attr_alloc_size(1) lzma_alloc_zero(size_t size, const lzma_allocator *allocator) { // Some calloc() variants return NULL if called with size == 0. diff --git a/src/liblzma/common/common.h b/src/liblzma/common/common.h index 4d9cab53..cea9f9b3 100644 --- a/src/liblzma/common/common.h +++ b/src/liblzma/common/common.h @@ -298,12 +298,12 @@ struct lzma_internal_s { /// Allocates memory extern void *lzma_alloc(size_t size, const lzma_allocator *allocator) - lzma_attribute((__malloc__)) lzma_attr_alloc_size(1); + lzma_attr_alloc_size(1); /// Allocates memory and zeroes it (like calloc()). This can be faster /// than lzma_alloc() + memzero() while being backward compatible with /// custom allocators. -extern void * lzma_attribute((__malloc__)) lzma_attr_alloc_size(1) +extern void * lzma_attr_alloc_size(1) lzma_alloc_zero(size_t size, const lzma_allocator *allocator); /// Frees memory diff --git a/src/xz/util.h b/src/xz/util.h index 4a536f52..3fac8961 100644 --- a/src/xz/util.h +++ b/src/xz/util.h @@ -20,11 +20,11 @@ /// \brief Safe realloc() that never returns NULL extern void *xrealloc(void *ptr, size_t size) - lzma_attribute((__malloc__)) lzma_attr_alloc_size(2); + lzma_attr_alloc_size(2); /// \brief Safe strdup() that never returns NULL -extern char *xstrdup(const char *src) lzma_attribute((__malloc__)); +extern char *xstrdup(const char *src); /// \brief Fancy version of strtoull() |