The "ether_line" function from <netinet/ether.h> misparses lines in /etc/ethers format -- it gets the MAC address wrong. I will attach two programs, one uses just "ether_aton" and works fine, one does "ether_line" and loses the high nibble from each byte in the MAC address. First one: $ ./et 00:c0:f0:46:5f:97 orig=00:c0:f0:46:5f:97; new=0:c0:f0:46:5f:97 Second one: $ echo -n 00:c0:f0:46:5f:97 fooop | ./et2 orig="00:c0:f0:46:5f:97 fooop"; new="0:0:0:6:f:7"/"fooop" Matthew.
Created attachment 56345 [details] ether_aton example -- works fine
Created attachment 56346 [details] ether_line example -- busted!
Fixed by http://sources.redhat.com/ml/libc-hacker/2002-05/msg00036.html
Confirmed ok in 8.0