Skip to content

Commit 11a6e2a

Browse files
committed
netstack/icmp: err on truncated payloads
1 parent bd76608 commit 11a6e2a

1 file changed

Lines changed: 4 additions & 6 deletions

File tree

intra/netstack/icmpecho.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,11 @@ func (r *icmpResponder) handle(b buffer.Buffer) (handled bool) {
143143
func (r *icmpResponder) process(h GICMPHandler, pkt *wire.Parsed, src, dst netip.AddrPort) {
144144
defer wire.Pool.Put(pkt)
145145

146-
payload, ok := pkt.Payload()
147-
if !ok {
148-
return
149-
}
150-
151146
icmpMsg := pkt.Transport()
152-
if len(icmpMsg) == 0 {
147+
payload, truncated := pkt.Payload()
148+
if truncated || len(icmpMsg) <= 0 {
149+
log.E("icmp: responder: truncated? %t or missing? %t ICMPv%d; %s => %s; h: %s; sz: %d",
150+
truncated, len(icmpMsg) <= 0, pkt.IPVersion, src, dst, pkt.ICMPHeaderString(), len(payload))
153151
return
154152
}
155153

0 commit comments

Comments
 (0)