fix panic in tun handler
This commit is contained in:
parent
6a36ebcc9f
commit
61f1f05339
@ -204,6 +204,9 @@ func (h *tapHandler) transport(tap net.Conn, conn net.PacketConn, raddr net.Addr
|
|||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if n == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
src := waterutil.MACSource((*b)[:n])
|
src := waterutil.MACSource((*b)[:n])
|
||||||
dst := waterutil.MACDestination((*b)[:n])
|
dst := waterutil.MACDestination((*b)[:n])
|
||||||
@ -260,6 +263,9 @@ func (h *tapHandler) transport(tap net.Conn, conn net.PacketConn, raddr net.Addr
|
|||||||
err != shadowaead.ErrShortPacket {
|
err != shadowaead.ErrShortPacket {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if n == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
src := waterutil.MACSource((*b)[:n])
|
src := waterutil.MACSource((*b)[:n])
|
||||||
dst := waterutil.MACDestination((*b)[:n])
|
dst := waterutil.MACDestination((*b)[:n])
|
||||||
|
@ -49,6 +49,9 @@ func (h *tunHandler) transportServer(ctx context.Context, tun io.ReadWriter, con
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrTun
|
return ErrTun
|
||||||
}
|
}
|
||||||
|
if n == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
var src, dst net.IP
|
var src, dst net.IP
|
||||||
if waterutil.IsIPv4((*b)[:n]) {
|
if waterutil.IsIPv4((*b)[:n]) {
|
||||||
@ -110,6 +113,9 @@ func (h *tunHandler) transportServer(ctx context.Context, tun io.ReadWriter, con
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if n == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
if n > keepAliveHeaderLength && bytes.Equal((*b)[:4], magicHeader) {
|
if n > keepAliveHeaderLength && bytes.Equal((*b)[:4], magicHeader) {
|
||||||
var peerIPs []net.IP
|
var peerIPs []net.IP
|
||||||
data := (*b)[keepAliveHeaderLength:n]
|
data := (*b)[keepAliveHeaderLength:n]
|
||||||
|
Loading…
Reference in New Issue
Block a user