From db1aaea4fa60eec483225235a63fe0b368596efd Mon Sep 17 00:00:00 2001 From: jwijenbergh Date: Tue, 27 Aug 2024 14:10:52 +0200 Subject: Failover monitor: Check if mtuSize is at least 28 bytes Otherwise the pinger creates a body with negative length --- internal/failover/monitor.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'internal/failover/monitor.go') diff --git a/internal/failover/monitor.go b/internal/failover/monitor.go index 5d81f22..5b44ee6 100644 --- a/internal/failover/monitor.go +++ b/internal/failover/monitor.go @@ -2,7 +2,6 @@ package failover import ( "context" - "errors" "fmt" "time" @@ -43,8 +42,8 @@ func (m *DroppedConMon) dropped(startBytes int64) (bool, error) { // This does not check Rx bytes every tick, but rather when pAlive or pDropped is reached // It returns an error if there was an invalid input or a ping was failed to be sent func (m *DroppedConMon) Start(ctx context.Context, gateway string, mtuSize int) (bool, error) { - if mtuSize <= 0 { - return false, errors.New("invalid mtu size given") + if mtuSize < mtuOverhead { + return false, fmt.Errorf("invalid MTU size given, MTU has to be at least: %v bytes", mtuOverhead) } // Create a ping struct with our mtu size -- cgit v1.2.3