diff --git a/[refs] b/[refs] index 4a2b30b23e0c..cea928840eb9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a1a8feed1743ec8d2af1dafa7c5321679f0a3e4f +refs/heads/master: f67ed26f2b3e92c0450deae3ffc3fff21c878a75 diff --git a/trunk/net/core/sock.c b/trunk/net/core/sock.c index 1a7e6eac90b0..e110b9004147 100644 --- a/trunk/net/core/sock.c +++ b/trunk/net/core/sock.c @@ -404,8 +404,9 @@ int sock_setsockopt(struct socket *sock, int level, int optname, if (!valbool) { sk->sk_bound_dev_if = 0; } else { - if (optlen > IFNAMSIZ) - optlen = IFNAMSIZ; + if (optlen > IFNAMSIZ - 1) + optlen = IFNAMSIZ - 1; + memset(devname, 0, sizeof(devname)); if (copy_from_user(devname, optval, optlen)) { ret = -EFAULT; break;