1*4882a593SmuzhiyunFrom 8b639f9faf6199e47b9eae0698d01a22917b6abe Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Tim Orling <timothy.t.orling@linux.intel.com>
3*4882a593SmuzhiyunDate: Fri, 29 Dec 2017 09:17:17 -0800
4*4882a593SmuzhiyunSubject: [PATCH] Provide implementation of strndupa for musl
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunReuse the approach from oe-core:
7*4882a593Smuzhiyun/meta/recipes-core/systemd/systemd/0002-src-basic-missing.h-check-for-missing-strndupa.patch
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunOriginal patch author: Emil Renner Berthing <systemd@esmil.dk>
10*4882a593Smuzhiyun
11*4882a593SmuzhiyunSigned-off-by: Tim Orling <timothy.t.orling@linux.intel.com
12*4882a593Smuzhiyun---
13*4882a593SmuzhiyunUpstream-Status: Pending
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun systemd/util.c | 11 +++++++++++
16*4882a593Smuzhiyun 1 file changed, 11 insertions(+)
17*4882a593Smuzhiyun
18*4882a593Smuzhiyundiff --git a/systemd/util.c b/systemd/util.c
19*4882a593Smuzhiyunindex e02c825..277e611 100644
20*4882a593Smuzhiyun--- a/systemd/util.c
21*4882a593Smuzhiyun+++ b/systemd/util.c
22*4882a593Smuzhiyun@@ -34,6 +34,17 @@
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun #include "util.h"
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun+#if !HAVE_DECL_STRNDUPA
27*4882a593Smuzhiyun+#define strndupa(s, n) \
28*4882a593Smuzhiyun+  ({ \
29*4882a593Smuzhiyun+    const char *__old = (s); \
30*4882a593Smuzhiyun+    size_t __len = strnlen(__old, (n)); \
31*4882a593Smuzhiyun+    char *__new = (char *)alloca(__len + 1); \
32*4882a593Smuzhiyun+    __new[__len] = '\0'; \
33*4882a593Smuzhiyun+    (char *)memcpy(__new, __old, __len); \
34*4882a593Smuzhiyun+  })
35*4882a593Smuzhiyun+#endif
36*4882a593Smuzhiyun+
37*4882a593Smuzhiyun int safe_atou(const char *s, unsigned *ret_u) {
38*4882a593Smuzhiyun         char *x = NULL;
39*4882a593Smuzhiyun         unsigned long l;
40*4882a593Smuzhiyun--
41*4882a593Smuzhiyun2.13.6
42*4882a593Smuzhiyun
43