From: Lasse Collin Date: Tue, 18 Jan 2011 19:23:50 +0000 (+0200) Subject: Add alloc_size and malloc attributes to a few functions. X-Git-Tag: upstream/5.1.3~202^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f71c4e16e913f660977526f0ef8d2acdf458d7c9;p=platform%2Fupstream%2Fxz.git Add alloc_size and malloc attributes to a few functions. Thanks to Cristian Rodríguez for the original patch. --- diff --git a/src/common/sysdefs.h b/src/common/sysdefs.h index 51f06cf..69370ba 100644 --- a/src/common/sysdefs.h +++ b/src/common/sysdefs.h @@ -180,4 +180,10 @@ typedef unsigned char _Bool; # define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0])) #endif +#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4 +# define lzma_attr_alloc_size(x) __attribute__((__alloc_size__(x))) +#else +# define lzma_attr_alloc_size(x) +#endif + #endif diff --git a/src/liblzma/common/common.h b/src/liblzma/common/common.h index 3a85168..b819432 100644 --- a/src/liblzma/common/common.h +++ b/src/liblzma/common/common.h @@ -205,7 +205,7 @@ struct lzma_internal_s { /// Allocates memory extern void *lzma_alloc(size_t size, lzma_allocator *allocator) - lzma_attribute((malloc)); + lzma_attribute((malloc)) lzma_attr_alloc_size(1); /// Frees memory extern void lzma_free(void *ptr, lzma_allocator *allocator); diff --git a/src/xz/util.h b/src/xz/util.h index fea8cc6..4b2d3e2 100644 --- a/src/xz/util.h +++ b/src/xz/util.h @@ -19,11 +19,12 @@ /// \brief Safe realloc() that never returns NULL -extern void *xrealloc(void *ptr, size_t size); +extern void *xrealloc(void *ptr, size_t size) + lzma_attribute((malloc)) lzma_attr_alloc_size(2); /// \brief Safe strdup() that never returns NULL -extern char *xstrdup(const char *src); +extern char *xstrdup(const char *src) lzma_attribute((malloc)); /// \brief Fancy version of strtoull()