index out of bounds exception when data is empty (#12428)

This commit is contained in:
Jack Tang 2019-11-22 22:37:59 +08:00 • committed by Miran
commit f0c5d99924

View file

@ -1838,15 +1838,17 @@ proc send*(socket: AsyncFD, data: string,
## Sends ``data`` to ``socket``. The returned future will complete once all ## Sends ``data`` to ``socket``. The returned future will complete once all
## data has been sent. ## data has been sent.
var retFuture = newFuture[void]("send") var retFuture = newFuture[void]("send")
if data.len > 0:
let sendFut = socket.send(unsafeAddr data[0], data.len, flags) let sendFut = socket.send(unsafeAddr data[0], data.len, flags)
sendFut.callback = sendFut.callback =
proc () = proc () =
keepAlive(data) keepAlive(data)
if sendFut.failed: if sendFut.failed:
retFuture.fail(sendFut.error) retFuture.fail(sendFut.error)
else: else:
retFuture.complete() retFuture.complete()
else:
retFuture.complete()
return retFuture return retFuture