On Tue, 10 Oct 2017 12:58:52 +0530 Christina Jacob <christina.jacob.koik...@gmail.com> wrote:
> +/* Get the mac address of the interface given interface name */ > +static long *getmac(char *iface) > +{ > + int fd; > + struct ifreq ifr; > + long *mac = NULL; > + > + fd = socket(AF_INET, SOCK_DGRAM, 0); > + ifr.ifr_addr.sa_family = AF_INET; > + strncpy(ifr.ifr_name, iface, IFNAMSIZ - 1); > + ioctl(fd, SIOCGIFHWADDR, &ifr); > + mac = (long *)ifr.ifr_hwaddr.sa_data; > + close(fd); > + return mac; Always check return value of ioctl. You are assuming sizeof(long) > 6 bytes. Also the byte order.