From: Lennart Poettering Date: Sat, 1 Aug 2009 00:01:58 +0000 (+0200) Subject: core-util: rework pa_strlcpy() to not rely on strncpy() X-Git-Tag: submit/2.0-panda/20130828.192557~1601 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c6ea9fecc9acd70642ae45b01300484f6b900c6b;p=profile%2Fivi%2Fpulseaudio-panda.git core-util: rework pa_strlcpy() to not rely on strncpy() strncpy() is very slow since it resets the entire destination buffer. Replace usage of strncpy by memcpy(). --- diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c index d01efa2..99644d7 100644 --- a/src/pulsecore/core-util.c +++ b/src/pulsecore/core-util.c @@ -552,12 +552,20 @@ char *pa_vsprintf_malloc(const char *format, va_list ap) { /* Similar to OpenBSD's strlcpy() function */ char *pa_strlcpy(char *b, const char *s, size_t l) { + size_t k; + pa_assert(b); pa_assert(s); pa_assert(l > 0); - strncpy(b, s, l); - b[l-1] = 0; + k = strlen(s); + + if (k > l-1) + k = l-1; + + memcpy(b, s, k); + b[k] = 0; + return b; }