From f3ea226d91588016ee8b5ecef8d75c6869a615ed Mon Sep 17 00:00:00 2001 From: Tomoki Shirasawa Date: Wed, 1 Oct 2014 09:04:11 +0900 Subject: [PATCH] fix strncpy buffer overrun --- lib/string.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/string.c b/lib/string.c index 1efac9ee..624e390a 100644 --- a/lib/string.c +++ b/lib/string.c @@ -50,9 +50,11 @@ char *strncpy(char *dest, const char *src, size_t maxlen) char *head = dest; ssize_t len = maxlen; + if(len <= 0) + return head; while((*(dest++) = *(src++)) && --len); if(len > 0){ - while(len--){ + while(--len){ *(dest++) = '\0'; } }