summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorDominik Picheta <dominikpicheta@googlemail.com>2015-02-25 08:07:57 +0000
committerDominik Picheta <dominikpicheta@googlemail.com>2015-02-25 08:07:57 +0000
commitdc8b07fe0bac01b65ac32efb9e28a855bedf3299 (patch)
tree6fbfafae12ad0e0e88696c60e8d76647690f72c6
parent819a2a03acb6bd47c4205be900f8b3f20e17c583 (diff)
parent72e4e7291fd077530929e14e0e6507115e6e6c5d (diff)
downloadNim-dc8b07fe0bac01b65ac32efb9e28a855bedf3299.tar.gz
Merge pull request #2210 from wiffel/devel
Add SSLFree after SLShutdown to prevent memory leak
-rw-r--r--lib/pure/net.nim2
-rw-r--r--lib/pure/sockets.nim2
2 files changed, 4 insertions, 0 deletions
diff --git a/lib/pure/net.nim b/lib/pure/net.nim
index 5e5c4f8ec..bed751542 100644
--- a/lib/pure/net.nim
+++ b/lib/pure/net.nim
@@ -454,6 +454,8 @@ proc close*(socket: Socket) =
         # shutdown i.e not wait for the peers "close notify" alert with a second
         # call to SSLShutdown
         let res = SSLShutdown(socket.sslHandle)
+        SSLFree(socket.sslHandle)
+        socket.sslHandle = nil
         if res == 0:
           discard
         elif res != 1:
diff --git a/lib/pure/sockets.nim b/lib/pure/sockets.nim
index 8ac5d4f09..3afb545c8 100644
--- a/lib/pure/sockets.nim
+++ b/lib/pure/sockets.nim
@@ -657,6 +657,8 @@ proc close*(socket: Socket) =
   when defined(ssl):
     if socket.isSSL:
       discard SSLShutdown(socket.sslHandle)
+      SSLFree(socket.sslHandle)
+      socket.sslHandle = nil
 
 proc getServByName*(name, proto: string): Servent {.tags: [ReadIOEffect].} =
   ## Searches the database from the beginning and finds the first entry for