[PATCH v3 2/3] util: Add l_memcpy
Denis Kenzior <[email protected]> Thu, 31 Oct 2024 15:26:14 -0500
| Newsgroups | dev.linux.lists.ell |
|---|---|
| Message-ID | <[email protected]> |
Some callers use memcpy without checking whether the size 'n' is 0 and
src is NULL. 'src' is declared as non-null and can thus cause
sanitizers to complain. Having 'src' as NULL is fine as long as 'n' is
0. Add a new l_memcpy function to take care of this case.
---
ell/util.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/ell/util.h b/ell/util.h
index c56f182292fa..2a0ee0e50b93 100644
--- a/ell/util.h
+++ b/ell/util.h
@@ -243,6 +243,16 @@ static inline void l_put_be64(uint64_t val, void *ptr)
void *l_malloc(size_t size) __attribute__ ((warn_unused_result, malloc));
void *l_memdup(const void *mem, size_t size)
__attribute__ ((warn_unused_result, malloc));
+
+static inline void * __attribute__((nonnull(1))) l_memcpy(void *dest,
+ const void *src, size_t n)
+{
+ if (!n)
+ return dest;
+
+ return __builtin_memcpy(dest, src, n);
+}
+
void l_free(void *ptr);
DEFINE_CLEANUP_FUNC(l_free);
--
2.45.2