]> granicus.if.org Git - python/commitdiff
Make sure that *really* no more than sizeof(ifr.ifr_name) chars are strcpy-ed to...
authorChristian Heimes <christian@cheimes.de>
Sun, 9 Sep 2012 23:25:50 +0000 (01:25 +0200)
committerChristian Heimes <christian@cheimes.de>
Sun, 9 Sep 2012 23:25:50 +0000 (01:25 +0200)
Modules/socketmodule.c

index 717667454a56bbc65bfd1f55c8c169228fcb39ca..d8c81fe15664a7f0d730b673d770fd232bb4c66b 100644 (file)
@@ -1674,7 +1674,8 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
             if (len == 0) {
                 ifr.ifr_ifindex = 0;
             } else if (len < sizeof(ifr.ifr_name)) {
-                strcpy(ifr.ifr_name, PyBytes_AS_STRING(interfaceName));
+                strncpy(ifr.ifr_name, PyBytes_AS_STRING(interfaceName), sizeof(ifr.ifr_name));
+                ifr.ifr_name[(sizeof(ifr.ifr_name))-1] = '\0';
                 if (ioctl(s->sock_fd, SIOCGIFINDEX, &ifr) < 0) {
                     s->errorhandler();
                     Py_DECREF(interfaceName);