[prev in list] [next in list] [prev in thread] [next in thread]
List: busybox
Subject: [PATCH] xstrndup: Use strndup instead of implementing it.
From: Martin Lewis <martin.lewis.x84 () gmail ! com>
Date: 2020-03-08 12:56:24
Message-ID: 20200308185553.17731-1-martin.lewis.x84 () gmail ! com
[Download RAW message or body]
Used the same function instead of strndup by mistake... Here's the correct version:
Signed-off-by: Martin Lewis <martin.lewis.x84@gmail.com>
---
libbb/xfuncs_printf.c | 19 +++++--------------
1 file changed, 5 insertions(+), 14 deletions(-)
diff --git a/libbb/xfuncs_printf.c b/libbb/xfuncs_printf.c
index 93f325c62..f1cf7aeed 100644
--- a/libbb/xfuncs_printf.c
+++ b/libbb/xfuncs_printf.c
@@ -93,26 +93,17 @@ char* FAST_FUNC xstrdup(const char *s)
// the (possibly truncated to length n) string into it.
char* FAST_FUNC xstrndup(const char *s, int n)
{
- int m;
char *t;
if (ENABLE_DEBUG && s == NULL)
bb_simple_error_msg_and_die("xstrndup bug");
- /* We can just xmalloc(n+1) and strncpy into it, */
- /* but think about xstrndup("abc", 10000) wastage! */
- m = n;
- t = (char*) s;
- while (m) {
- if (!*t) break;
- m--;
- t++;
- }
- n -= m;
- t = xmalloc(n + 1);
- t[n] = '\0';
+ t = strndup(s, n);
- return memcpy(t, s, n);
+ if (t == NULL)
+ bb_die_memory_exhausted();
+
+ return t;
}
void* FAST_FUNC xmemdup(const void *s, int n)
--
2.11.0
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic