From f0c5d99924768175c332f412eb9c72ce5e28d0cb Mon Sep 17 00:00:00 2001 From: Jack Tang <1190545+jackhftang@users.noreply.github.com> Date: Fri, 22 Nov 2019 22:37:59 +0800 Subject: index out of bounds exception when data is empty (#12428) --- lib/pure/asyncdispatch.nim | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/pure/asyncdispatch.nim b/lib/pure/asyncdispatch.nim index a99a465f8..d7d829742 100644 --- a/lib/pure/asyncdispatch.nim +++ b/lib/pure/asyncdispatch.nim @@ -1838,15 +1838,17 @@ proc send*(socket: AsyncFD, data: string, ## Sends ``data`` to ``socket``. The returned future will complete once all ## data has been sent. var retFuture = newFuture[void]("send") - - let sendFut = socket.send(unsafeAddr data[0], data.len, flags) - sendFut.callback = - proc () = - keepAlive(data) - if sendFut.failed: - retFuture.fail(sendFut.error) - else: - retFuture.complete() + if data.len > 0: + let sendFut = socket.send(unsafeAddr data[0], data.len, flags) + sendFut.callback = + proc () = + keepAlive(data) + if sendFut.failed: + retFuture.fail(sendFut.error) + else: + retFuture.complete() + else: + retFuture.complete() return retFuture -- cgit 1.4.1-2-gfad0