summary refs log tree commit diff stats
path: root/lib/pure/net.nim
diff options
context:
space:
mode:
authorshirleyquirk <31934565+shirleyquirk@users.noreply.github.com>2021-04-16 13:22:51 +0100
committerGitHub <noreply@github.com>2021-04-16 14:22:51 +0200
commitfdd4391534578d6a5a655eef99ef96e53ff2b4f1 (patch)
treed1caf928f84a995a5a6d33d56885875b887dfa33 /lib/pure/net.nim
parentd19e4310dc16cae2329c55dfa8feb94e0981dc0c (diff)
downloadNim-fdd4391534578d6a5a655eef99ef96e53ff2b4f1.tar.gz
Fix buffer-overrun bug in net (#17728) [backport:1.0]
Diffstat (limited to 'lib/pure/net.nim')
-rw-r--r--lib/pure/net.nim7
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/pure/net.nim b/lib/pure/net.nim
index 9be9c6acb..343cdc9b1 100644
--- a/lib/pure/net.nim
+++ b/lib/pure/net.nim
@@ -690,12 +690,11 @@ when defineSsl:
     let ctx = SslContext(context: ssl.SSL_get_SSL_CTX)
     let hintString = if hint == nil: "" else: $hint
     let (identityString, pskString) = (ctx.clientGetPskFunc)(hintString)
-    if psk.len.cuint > max_psk_len:
+    if pskString.len.cuint > max_psk_len:
       return 0
     if identityString.len.cuint >= max_identity_len:
       return 0
-
-    copyMem(identity, identityString.cstring, pskString.len + 1) # with the last zero byte
+    copyMem(identity, identityString.cstring, identityString.len + 1) # with the last zero byte
     copyMem(psk, pskString.cstring, pskString.len)
 
     return pskString.len.cuint
@@ -716,7 +715,7 @@ when defineSsl:
       max_psk_len: cint): cuint {.cdecl.} =
     let ctx = SslContext(context: ssl.SSL_get_SSL_CTX)
     let pskString = (ctx.serverGetPskFunc)($identity)
-    if psk.len.cint > max_psk_len:
+    if pskString.len.cint > max_psk_len:
       return 0
     copyMem(psk, pskString.cstring, pskString.len)