diff options
author | Charles Blake <cblake@csail.mit.edu> | 2015-07-26 09:02:43 -0400 |
---|---|---|
committer | Charles Blake <cblake@csail.mit.edu> | 2015-07-26 09:02:43 -0400 |
commit | 18df5dad113c24696c3cae45ffdfe663f7d7b4ef (patch) | |
tree | 133144dc79b692a91095f0e736f8a6c0dcc577c6 | |
parent | ae303cc1c3feb7120202e7c711eb6044a3486834 (diff) | |
download | Nim-18df5dad113c24696c3cae45ffdfe663f7d7b4ef.tar.gz |
Do not read past end of input. Ensure NUL termination.
-rw-r--r-- | lib/system/sysstr.nim | 3 |
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)) |