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