X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Flinux%2Fdevice.c;h=94e223f7ad9027d4da404a69be3d27bd5a79aaa4;hb=3bfdf45893f28f232c5851eb67d1800dc5004687;hp=23178a3624c26ca8695983e701c0d39db3b7749d;hpb=f6e87ab476a0faf8b124ecaaa27f967d825e6457;p=tinc diff --git a/src/linux/device.c b/src/linux/device.c index 23178a36..94e223f7 100644 --- a/src/linux/device.c +++ b/src/linux/device.c @@ -44,7 +44,7 @@ char *device = NULL; char *iface = NULL; static char *type = NULL; static char ifrname[IFNAMSIZ]; -static char *device_info; +static const char *device_info; static bool setup_device(void) { if(!get_config_string(lookup_config(config_tree, "Device"), &device)) { @@ -67,7 +67,7 @@ static bool setup_device(void) { fcntl(device_fd, F_SETFD, FD_CLOEXEC); #endif - struct ifreq ifr = {{{0}}}; + struct ifreq ifr = {0}; get_config_string(lookup_config(config_tree, "DeviceType"), &type); @@ -103,10 +103,12 @@ static bool setup_device(void) { if(iface) { strncpy(ifr.ifr_name, iface, IFNAMSIZ); + ifr.ifr_name[IFNAMSIZ - 1] = 0; } if(!ioctl(device_fd, TUNSETIFF, &ifr)) { strncpy(ifrname, ifr.ifr_name, IFNAMSIZ); + ifrname[IFNAMSIZ - 1] = 0; free(iface); iface = xstrdup(ifrname); } else { @@ -117,7 +119,7 @@ static bool setup_device(void) { logger(DEBUG_ALWAYS, LOG_INFO, "%s is a %s", device, device_info); if(ifr.ifr_flags & IFF_TAP) { - struct ifreq ifr_mac = {}; + struct ifreq ifr_mac = {0}; if(!ioctl(device_fd, SIOCGIFHWADDR, &ifr_mac)) { memcpy(mymac.x, ifr_mac.ifr_hwaddr.sa_data, ETH_ALEN);