From 63dc5d107943ac22b0d5d9b9f758a29612120d63 Mon Sep 17 00:00:00 2001 From: soypat Date: Tue, 15 Jul 2025 00:57:24 -0300 Subject: [PATCH] add zero max ports error --- internet/definitions.go | 1 + internet/stack-ethernet.go | 2 ++ internet/stack-ip.go | 3 +++ internet/stack-ports.go | 2 ++ 4 files changed, 8 insertions(+) diff --git a/internet/definitions.go b/internet/definitions.go index 99aebc1..da5c8be 100644 --- a/internet/definitions.go +++ b/internet/definitions.go @@ -42,6 +42,7 @@ type node struct { } var ( + errZeroMaxNodes = errors.New("zero max ports") errZeroPort = errors.New("port must be greater than zero") errInvalidProto = errors.New("invalid protocol") errProtoRegistered = errors.New("protocol already registered") diff --git a/internet/stack-ethernet.go b/internet/stack-ethernet.go index dd77a1c..37d2622 100644 --- a/internet/stack-ethernet.go +++ b/internet/stack-ethernet.go @@ -36,6 +36,8 @@ func (ls *StackEthernet) HardwareAddr6() [6]byte { func (ls *StackEthernet) Reset6(mac, gateway [6]byte, mtu, maxNodes int) error { if mtu > math.MaxUint16 || mtu < 256 { return errors.New("invalid MTU") + } else if maxNodes <= 0 { + return errZeroMaxNodes } ls.handlers = slices.Grow(ls.handlers[:0], maxNodes) *ls = StackEthernet{ diff --git a/internet/stack-ip.go b/internet/stack-ip.go index 8ef4c29..1264042 100644 --- a/internet/stack-ip.go +++ b/internet/stack-ip.go @@ -27,6 +27,9 @@ type StackIP struct { } func (sb *StackIP) Reset(addr netip.Addr, maxNodes int) error { + if maxNodes <= 0 { + return errZeroMaxNodes + } err := sb.SetAddr(addr) if err != nil { return err diff --git a/internet/stack-ports.go b/internet/stack-ports.go index 29e3a98..a9087d1 100644 --- a/internet/stack-ports.go +++ b/internet/stack-ports.go @@ -27,6 +27,8 @@ func (ps *StackPorts) ResetTCP(maxNodes int) error { func (ps *StackPorts) Reset(protocol uint64, dstPortOffset uint16, maxNodes int) error { if protocol > math.MaxUint16 { return errInvalidProto + } else if maxNodes <= 0 { + return errZeroMaxNodes } ps.handlers = slices.Grow(ps.handlers[:0], maxNodes) *ps = StackPorts{