mirror of
https://github.com/yggdrasil-network/yggdrasil-go
synced 2024-11-10 15:30:34 +03:00
Fix panic where slice goes out of bounds because iface.Read returns less than zero (which might happen when the TUN/TAP interface is closed)
This commit is contained in:
parent
368f499f1d
commit
94cf2854a9
@ -111,7 +111,7 @@ func (r *tunReader) _read() {
|
|||||||
recvd := util.ResizeBytes(util.GetBytes(), 65535+tun_ETHER_HEADER_LENGTH)
|
recvd := util.ResizeBytes(util.GetBytes(), 65535+tun_ETHER_HEADER_LENGTH)
|
||||||
// Wait for a packet to be delivered to us through the TUN/TAP adapter
|
// Wait for a packet to be delivered to us through the TUN/TAP adapter
|
||||||
n, err := r.tun.iface.Read(recvd)
|
n, err := r.tun.iface.Read(recvd)
|
||||||
if n == 0 {
|
if n <= 0 {
|
||||||
util.PutBytes(recvd)
|
util.PutBytes(recvd)
|
||||||
} else {
|
} else {
|
||||||
r.tun.handlePacketFrom(r, recvd[:n], err)
|
r.tun.handlePacketFrom(r, recvd[:n], err)
|
||||||
|
Loading…
Reference in New Issue
Block a user