diff options
| -rw-r--r-- | src/pulsecore/core-util.c | 12 | 
1 files changed, 10 insertions, 2 deletions
diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c index d01efa23..99644d7c 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;  }  | 
