From 6062c0d19bc201cbeb61b8875598cdd7a14a5ae0 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Wed, 5 Jan 2022 23:02:13 +0100 Subject: [PATCH] libbb: change xstrndup, xmemdup to take size_t as size parameter Also, remove entirely usually-disabled paranoia check (was also using wrong config option to enable itself). Signed-off-by: Denys Vlasenko --- include/libbb.h | 4 ++-- libbb/xfuncs_printf.c | 7 ++----- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/include/libbb.h b/include/libbb.h index c93058f6d..daa310776 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -429,8 +429,8 @@ void *xrealloc(void *old, size_t size) FAST_FUNC; xrealloc_vector_helper((vector), (sizeof((vector)[0]) << 8) + (shift), (idx)) void* xrealloc_vector_helper(void *vector, unsigned sizeof_and_shift, int idx) FAST_FUNC; char *xstrdup(const char *s) FAST_FUNC RETURNS_MALLOC; -char *xstrndup(const char *s, int n) FAST_FUNC RETURNS_MALLOC; -void *xmemdup(const void *s, int n) FAST_FUNC RETURNS_MALLOC; +char *xstrndup(const char *s, size_t n) FAST_FUNC RETURNS_MALLOC; +void *xmemdup(const void *s, size_t n) FAST_FUNC RETURNS_MALLOC; void *mmap_read(int fd, size_t size) FAST_FUNC; void *mmap_anon(size_t size) FAST_FUNC; void *xmmap_anon(size_t size) FAST_FUNC; diff --git a/libbb/xfuncs_printf.c b/libbb/xfuncs_printf.c index d29acebcd..fc630d176 100644 --- a/libbb/xfuncs_printf.c +++ b/libbb/xfuncs_printf.c @@ -91,13 +91,10 @@ char* FAST_FUNC xstrdup(const char *s) // Die if we can't allocate n+1 bytes (space for the null terminator) and copy // the (possibly truncated to length n) string into it. -char* FAST_FUNC xstrndup(const char *s, int n) +char* FAST_FUNC xstrndup(const char *s, size_t n) { char *t; - if (ENABLE_DEBUG && s == NULL) - bb_simple_error_msg_and_die("xstrndup bug"); - t = strndup(s, n); if (t == NULL) @@ -106,7 +103,7 @@ char* FAST_FUNC xstrndup(const char *s, int n) return t; } -void* FAST_FUNC xmemdup(const void *s, int n) +void* FAST_FUNC xmemdup(const void *s, size_t n) { return memcpy(xmalloc(n), s, n); }