From 59f757e4d7162ce24b4630c38460c33196a0bfc5 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Thu, 15 Nov 2007 16:18:33 -0600 Subject: [PATCH] Change strlcpy not to use strncpy. (Adds 24 bytes, but doesn't memset the unused portion of the buffer to 0, which can touch and allocate physical pages for a large virtual mapping.) --- lib/lib.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/lib.c b/lib/lib.c index ad84dff..eed7296 100644 --- a/lib/lib.c +++ b/lib/lib.c @@ -18,8 +18,12 @@ // Like strncpy but always null terminated. void strlcpy(char *dest, char *src, size_t size) { - strncpy(dest,src,size); - dest[size-1] = 0; + int len = strlen(src); + if (size--) { + if (len > size) len=size; + memcpy(dest,src, len); + dest[len] = 0; + } } #endif -- 2.7.4