upgrade to linux 2.6.10-1.12_FC2
[linux-2.6.git] / net / compat.c
index e80e0ce..be5d936 100644 (file)
@@ -125,7 +125,7 @@ int verify_compat_iovec(struct msghdr *kern_msg, struct iovec *kern_iov,
         (struct compat_cmsghdr __user *)NULL)
 
 #define CMSG_COMPAT_OK(ucmlen, ucmsg, mhdr) \
-       ((ucmlen) >= sizeof(struct cmsghdr) && \
+       ((ucmlen) >= sizeof(struct compat_cmsghdr) && \
         (ucmlen) <= (unsigned long) \
         ((mhdr)->msg_controllen - \
          ((char *)(ucmsg) - (char *)(mhdr)->msg_control)))
@@ -507,7 +507,8 @@ static int do_get_sock_timeout(int fd, int level, int optname,
 asmlinkage long compat_sys_getsockopt(int fd, int level, int optname,
                                char __user *optval, int __user *optlen)
 {
-       if (optname == SO_RCVTIMEO || optname == SO_SNDTIMEO)
+       if (level == SOL_SOCKET &&
+           (optname == SO_RCVTIMEO || optname == SO_SNDTIMEO))
                return do_get_sock_timeout(fd, level, optname, optval, optlen);
        return sys_getsockopt(fd, level, optname, optval, optlen);
 }