]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - net/packet/af_packet.c
net: packet: fix information leak to userland
[karo-tx-linux.git] / net / packet / af_packet.c
index 41866eb2b5b66ba2b6b9feaaa54391d9299ae253..9d9b78e97b71e7406fbdb31b3bd840f9133fbad3 100644 (file)
@@ -1526,7 +1526,7 @@ static int packet_getname_spkt(struct socket *sock, struct sockaddr *uaddr,
        uaddr->sa_family = AF_PACKET;
        dev = dev_get_by_index(sock_net(sk), pkt_sk(sk)->ifindex);
        if (dev) {
-               strlcpy(uaddr->sa_data, dev->name, 15);
+               strncpy(uaddr->sa_data, dev->name, 14);
                dev_put(dev);
        } else
                memset(uaddr->sa_data, 0, 14);
@@ -1549,6 +1549,7 @@ static int packet_getname(struct socket *sock, struct sockaddr *uaddr,
        sll->sll_family = AF_PACKET;
        sll->sll_ifindex = po->ifindex;
        sll->sll_protocol = po->num;
+       sll->sll_pkttype = 0;
        dev = dev_get_by_index(sock_net(sk), po->ifindex);
        if (dev) {
                sll->sll_hatype = dev->type;