{
        sigset_t mask;
 
-       if (sizemask != sizeof(sigset_t) ||
-           copy_from_user(&mask, user_mask, sizeof(mask)))
+       if (sizemask != sizeof(sigset_t))
                return -EINVAL;
+       if (copy_from_user(&mask, user_mask, sizeof(mask)))
+               return -EFAULT;
        return do_signalfd4(ufd, &mask, flags);
 }
 
 {
        sigset_t mask;
 
-       if (sizemask != sizeof(sigset_t) ||
-           copy_from_user(&mask, user_mask, sizeof(mask)))
+       if (sizemask != sizeof(sigset_t))
                return -EINVAL;
+       if (copy_from_user(&mask, user_mask, sizeof(mask)))
+               return -EFAULT;
        return do_signalfd4(ufd, &mask, 0);
 }