summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorCharles Blake <cblake@csail.mit.edu>2015-07-26 09:02:43 -0400
committerCharles Blake <cblake@csail.mit.edu>2015-07-26 09:02:43 -0400
commit18df5dad113c24696c3cae45ffdfe663f7d7b4ef (patch)
tree133144dc79b692a91095f0e736f8a6c0dcc577c6
parentae303cc1c3feb7120202e7c711eb6044a3486834 (diff)
downloadNim-18df5dad113c24696c3cae45ffdfe663f7d7b4ef.tar.gz
Do not read past end of input. Ensure NUL termination.
-rw-r--r--lib/system/sysstr.nim3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/system/sysstr.nim b/lib/system/sysstr.nim
index 326c601bd..e4673b169 100644
--- a/lib/system/sysstr.nim
+++ b/lib/system/sysstr.nim
@@ -82,7 +82,8 @@ proc copyStr(s: NimString, start: int): NimString {.compilerProc.} =
 proc toNimStr(str: cstring, len: int): NimString {.compilerProc.} =
   result = rawNewStringNoInit(len)
   result.len = len
-  c_memcpy(result.data, str, len + 1)
+  c_memcpy(result.data, str, len)
+  result[result.len] = '\0'
 
 proc cstrToNimstr(str: cstring): NimString {.compilerRtl.} =
   result = toNimStr(str, c_strlen(str))