X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=net%2Fcore%2Fscm.c;h=10f5c65f6a470cc914de500b43d63990e89db1b6;hb=80693ceb78b08baa3b66a900d9225b2cf9c6f0ed;hp=100ba6d9d478d7df1082a3790ddfac0e6c012d73;hpb=1212663fba7c5e003e05d24f043d5ed57eb18b24;p=linux-2.6 diff --git a/net/core/scm.c b/net/core/scm.c index 100ba6d9d4..10f5c65f6a 100644 --- a/net/core/scm.c +++ b/net/core/scm.c @@ -196,6 +196,8 @@ int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data) if (copy_to_user(CMSG_DATA(cm), data, cmlen - sizeof(struct cmsghdr))) goto out; cmlen = CMSG_SPACE(len); + if (msg->msg_controllen < cmlen) + cmlen = msg->msg_controllen; msg->msg_control += cmlen; msg->msg_controllen -= cmlen; err = 0;