From 73de13ca7a6290a067d5ae6e176bd20d2f98a075 Mon Sep 17 00:00:00 2001 From: Eugene Kabanov Date: Wed, 5 Aug 2020 00:23:43 +0300 Subject: [PATCH] Fix SIGSEGV while consuming errors more then once. (#114) --- chronos/transports/datagram.nim | 2 ++ 1 file changed, 2 insertions(+) diff --git a/chronos/transports/datagram.nim b/chronos/transports/datagram.nim index 6525b54..4333123 100644 --- a/chronos/transports/datagram.nim +++ b/chronos/transports/datagram.nim @@ -817,6 +817,7 @@ proc peekMessage*(transp: DatagramTransport, msg: var seq[byte], msglen: var int) = ## Get access to internal message buffer and length of incoming datagram. if ReadError in transp.state: + transp.state.excl(ReadError) raise transp.getError() shallowCopy(msg, transp.buffer) msglen = transp.buflen @@ -824,6 +825,7 @@ proc peekMessage*(transp: DatagramTransport, msg: var seq[byte], proc getMessage*(transp: DatagramTransport): seq[byte] = ## Copy data from internal message buffer and return result. if ReadError in transp.state: + transp.state.excl(ReadError) raise transp.getError() if transp.buflen > 0: result = newSeq[byte](transp.buflen)