]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
tun-device: Fix compiler warning
authorTobias Brunner <tobias@strongswan.org>
Thu, 15 Sep 2022 08:49:42 +0000 (10:49 +0200)
committerTobias Brunner <tobias@strongswan.org>
Thu, 15 Sep 2022 10:16:12 +0000 (12:16 +0200)
Only the second was reported by the compiler (depending on the version
and similarly to the previous commit only with AddressSanitizer active).
The strncpy() call for UTUN_CONTROL_NAME was simply wrong.

src/libstrongswan/networking/tun_device.c

index 77074b2ee833c712e7a61c64eba1eb87270b0a22..39fac4e0aed592b9adeb1945ef2c08ed14c77db6 100644 (file)
@@ -432,7 +432,7 @@ static bool init_tun(private_tun_device_t *this, const char *name_tmpl)
        }
 
        /* get a control identifier for the utun kernel extension */
-       strncpy(info.ctl_name, UTUN_CONTROL_NAME, strlen(UTUN_CONTROL_NAME));
+       strncpy(info.ctl_name, UTUN_CONTROL_NAME, sizeof(info.ctl_name)-1);
        if (ioctl(this->tunfd, CTLIOCGINFO, &info) < 0)
        {
                DBG1(DBG_LIB, "failed to ioctl tundevice: %s", strerror(errno));
@@ -466,7 +466,7 @@ static bool init_tun(private_tun_device_t *this, const char *name_tmpl)
 
        struct ifreq ifr;
 
-       strncpy(this->if_name, name_tmpl ?: "tun%d", IFNAMSIZ);
+       strncpy(this->if_name, name_tmpl ?: "tun%d", IFNAMSIZ-1);
        this->if_name[IFNAMSIZ-1] = '\0';
 
        this->tunfd = open("/dev/net/tun", O_RDWR);