summaryrefslogtreecommitdiffstats
path: root/newlib/libc
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc')
-rw-r--r--newlib/libc/machine/spu/strcpy.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/newlib/libc/machine/spu/strcpy.h b/newlib/libc/machine/spu/strcpy.h
index e2ec2b259..946148bd2 100644
--- a/newlib/libc/machine/spu/strcpy.h
+++ b/newlib/libc/machine/spu/strcpy.h
@@ -176,5 +176,9 @@ static inline void * _strncpy(char * __restrict__ dest, const char *
*/
dest[maxlen - spu_extract(curlen, 0)] = '\0';
}
+
+ /* Pad null bytes if the length of the "src" is less than "n" (strncpy). */
+ if (checklen && !lastzero && (maxlen != spu_extract(curlen,0)))
+ memset(dest + spu_extract(curlen, 0), 0, maxlen - spu_extract(curlen, 0));
return (dest);
}