]> Pileus Git - ~andy/fetchmail/commitdiff
Don't read more data from ifname than fits in the result buffer.
authorMatthias Andree <matthias.andree@gmx.de>
Wed, 20 Jul 2005 15:58:43 +0000 (15:58 -0000)
committerMatthias Andree <matthias.andree@gmx.de>
Wed, 20 Jul 2005 15:58:43 +0000 (15:58 -0000)
svn path=/trunk/; revision=4149

interface.c

index 45706c0f4920f31c4e330ed67d1343c99b922449..b4e7f063c5ccbafcef230ad7bd511afab0664af0 100644 (file)
@@ -227,9 +227,9 @@ openkvm(void)
 static int 
 get_ifinfo(const char *ifname, ifinfo_t *ifinfo)
 {
-       char                    tname[16];
+       char                    tname[16];
        char                    iname[16];
-       struct ifnet            ifnet;
+       struct ifnet            ifnet;
        unsigned long           ifnet_addr = ifnet_savedaddr;
 #if __FreeBSD_version >= 300001
        struct ifnethead        ifnethead;
@@ -244,7 +244,7 @@ get_ifinfo(const char *ifname, ifinfo_t *ifinfo)
        if (if_egid)
                setegid(if_egid);
        
-       for (i = 0; ifname[i] && ifname[i] != '/'; i++)
+       for (i = 0; ifname[i] && ifname[i] != '/' && i < sizeof(iname) - 1; i++)
                iname[i] = ifname[i];
                
        iname[i] = '\0';