summaryrefslogtreecommitdiff
path: root/packages/glibc/2.12.1/0046-if_nametoindex-size-check.patch
blob: 5803db57247177a7d994af895e61e5522a1813e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
commit 2180fee114b778515b3f560e5ff1e795282e60b0
Author: Steve Ellcey <sellcey@caviumnetworks.com>
Date:   Wed Nov 15 08:58:48 2017 -0800

    Check length of ifname before copying it into to ifreq structure.
    
            [BZ #22442]
            * sysdeps/unix/sysv/linux/if_index.c (__if_nametoindex):
            Check if ifname is too long.

---
 sysdeps/unix/sysv/linux/if_index.c |    6 ++++++
 1 file changed, 6 insertions(+)

--- a/sysdeps/unix/sysv/linux/if_index.c
+++ b/sysdeps/unix/sysv/linux/if_index.c
@@ -54,6 +54,12 @@
   if (fd < 0)
     return 0;
 
+  if (strlen (ifname) >= IFNAMSIZ)
+    {
+      __set_errno (ENODEV);
+      return 0;
+    }
+
   strncpy (ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
   if (__ioctl (fd, SIOCGIFINDEX, &ifr) < 0)
     {