Plug memory leaks from pcap_ether_hostton().
pcap_ether_hostton() returns a pointer to allocated memory, which needs
to be freed, which gen_scode() does for the successful case only. To
have the memory freed in any case, copy the value into a local variable
and free the allocated memory immediately thereafter -- this suffices
since the data size is fixed and the value needs to be used only once
per code path. In other words, apply the solution from commit
2b01095
to the problem from commit
bcbef22.