netsniff-ng / netsniff-ng

A Swiss army knife for your daily Linux network plumbing.
http://netsniff-ng.org
Other
1.2k stars 237 forks source link

trafgen: Fix for ipv6 header generation when L3-only devices are present #233

Closed MatPerin closed 2 years ago

MatPerin commented 2 years ago

When trying to run trafgen with a config which included the ipv6() header generation helper function, I noticed the tool halting without sending any traffic.

By further inspection I found out that the issue was a segmentation fault caused by NULL pointer deferencing inside the lookup function for the device ipv6 address. Apparently, the getifaddrs function returns a linked list node for L2 even in the case of L3 interfaces (in my case, it was a TUN device created in the network) but with the pointer to the address structure set to NULL. This causes a segfault when trying to access the address family from it. I solved the issue by checking the validity of the pointer beforehand.

MatPerin commented 2 years ago

Sure, sorry for not including the commit message and the signed-off-by label. It should be all fixed now, let me know if further changes are needed.