mirror of
https://github.com/maride/pancap.git
synced 2024-12-22 20:27:29 +00:00
Fix 'DHCPv4 length 0 too short' error
This commit is contained in:
parent
4bb9dad91e
commit
a1281360cd
@ -18,8 +18,15 @@ func HandleDHCPv4Packet(packet gopacket.Packet) error {
|
||||
var dhcppacket layers.DHCPv4
|
||||
var ethernetpacket layers.Ethernet
|
||||
|
||||
// For some reason I can't find an explanation for,
|
||||
// packet.Layer(layers.LayerTypeDHCPv4).LayerContents(), which effectively is
|
||||
// packet.Layers()[3].layerContents(), is empty, but
|
||||
// packet.Layers()[2].layerPayload() contains the correct DHCP packet.
|
||||
// ... although both calls should return the same bytes.
|
||||
// TODO: Open an Issue on github.com/google/gopacket
|
||||
|
||||
// Decode raw packet into DHCPv4
|
||||
decodeDHCPErr := dhcppacket.DecodeFromBytes(packet.Layer(layers.LayerTypeDHCPv4).LayerContents(), gopacket.NilDecodeFeedback)
|
||||
decodeDHCPErr := dhcppacket.DecodeFromBytes(packet.Layers()[2].LayerPayload(), gopacket.NilDecodeFeedback)
|
||||
if decodeDHCPErr != nil {
|
||||
// Encountered an error during decoding, most likely a broken packet
|
||||
return decodeDHCPErr
|
||||
|
Loading…
Reference in New Issue
Block a user