X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=net%2Fcompat.c;h=377e560ab5c98bb99cc5d83340082c926b2c39de;hb=7607341a265a56cdf8b4bf10d355098e80ea481b;hp=d74d82155d78e20cd008a289751bcaca70b27f7a;hpb=f79e3185dd0f8650022518d7624c876d8929061b;p=linux-2.6 diff --git a/net/compat.c b/net/compat.c index d74d82155d..377e560ab5 100644 --- a/net/compat.c +++ b/net/compat.c @@ -254,6 +254,8 @@ int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *dat if (copy_to_user(CMSG_COMPAT_DATA(cm), data, cmlen - sizeof(struct compat_cmsghdr))) return -EFAULT; cmlen = CMSG_COMPAT_SPACE(len); + if (kmsg->msg_controllen < cmlen) + cmlen = kmsg->msg_controllen; kmsg->msg_control += cmlen; kmsg->msg_controllen -= cmlen; return 0;