|
@@ -488,8 +488,11 @@ put_compat_sigset(compat_sigset_t __user *compat, const sigset_t *set,
|
|
compat_sigset_t v;
|
|
compat_sigset_t v;
|
|
switch (_NSIG_WORDS) {
|
|
switch (_NSIG_WORDS) {
|
|
case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3];
|
|
case 4: v.sig[7] = (set->sig[3] >> 32); v.sig[6] = set->sig[3];
|
|
|
|
+ /* fall through */
|
|
case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2];
|
|
case 3: v.sig[5] = (set->sig[2] >> 32); v.sig[4] = set->sig[2];
|
|
|
|
+ /* fall through */
|
|
case 2: v.sig[3] = (set->sig[1] >> 32); v.sig[2] = set->sig[1];
|
|
case 2: v.sig[3] = (set->sig[1] >> 32); v.sig[2] = set->sig[1];
|
|
|
|
+ /* fall through */
|
|
case 1: v.sig[1] = (set->sig[0] >> 32); v.sig[0] = set->sig[0];
|
|
case 1: v.sig[1] = (set->sig[0] >> 32); v.sig[0] = set->sig[0];
|
|
}
|
|
}
|
|
return copy_to_user(compat, &v, size) ? -EFAULT : 0;
|
|
return copy_to_user(compat, &v, size) ? -EFAULT : 0;
|