From fb17b3384852672a32e8f1cdc4fdcb7f3d9cff1b Mon Sep 17 00:00:00 2001 From: Yanhu007 Date: Mon, 13 Apr 2026 14:07:02 +0800 Subject: [PATCH] fix: use %w for error wrapping in WritePacket WritePacket uses %v to format the error from writePacketHeader, which converts it to a string and loses the original error type. This prevents errors.Is and errors.As from detecting underlying system errors like syscall.ENOSPC. Change %v to %w to properly wrap the error. Fixes #1213 --- pcapgo/write.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pcapgo/write.go b/pcapgo/write.go index a008aba16..c04d54827 100755 --- a/pcapgo/write.go +++ b/pcapgo/write.go @@ -122,7 +122,7 @@ func (w *Writer) WritePacket(ci gopacket.CaptureInfo, data []byte) error { return fmt.Errorf("invalid capture info %+v: capture length > length", ci) } if err := w.writePacketHeader(ci); err != nil { - return fmt.Errorf("error writing packet header: %v", err) + return fmt.Errorf("error writing packet header: %w", err) } _, err := w.w.Write(data) return err