mirror of
				https://github.com/maride/pancap.git
				synced 2025-10-10 19:36:51 +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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user