> +     if (act)
>               if (copy_from_user(&new_sa.sa, act, sizeof(new_sa.sa)))
>                       return -EFAULT;

        if (act && copy_from_user(&new_sa.sa, act, sizeof(new_sa.sa)))
                return -EFAULT;

>       ret = do_sigaction(sig, act ? &new_sa : NULL, oact ? &old_sa : NULL);
> -
> -     if (!ret && oact) {
> +     if (!ret && oact)
>               if (copy_to_user(oact, &old_sa.sa, sizeof(old_sa.sa)))
>                       return -EFAULT;
> -     }

        ret = do_sigaction(sig, act ? &new_sa : NULL, oact ? &old_sa : NULL);
        if (!ret && oact && copy_to_user(oact, &old_sa.sa, sizeof(old_sa.sa)))
                return -EFAULT;

Althought I'd personaly write it as:

        ret = do_sigaction(sig, act ? &new_sa : NULL, oact ? &old_sa : NULL);
        if (ret)
                return ret;
        if (oact && copy_to_user(oact, &old_sa.sa, sizeof(old_sa.sa)))
                return -EFAULT;
        return 0;

Reply via email to