Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b9ab117c2f2eac8432def6a2ea03711bfa7f35d5
Commit:     b9ab117c2f2eac8432def6a2ea03711bfa7f35d5
Parent:     bdc2619ab95d45d434c16d5c216bc6243761f6fb
Author:     Shi Weihua <[EMAIL PROTECTED]>
AuthorDate: Mon Dec 3 12:57:50 2007 +0800
Committer:  Tony Luck <[EMAIL PROTECTED]>
CommitDate: Fri Dec 7 16:10:59 2007 -0800

    [IA64] signal : fix missing error checkings
    
    Not all the return value of __copy_from_user and
    __put_user is checked.This patch fixed it.
    
    Signed-off-by: Shi Weihua <[EMAIL PROTECTED]>
    Signed-off-by: Tony Luck <[EMAIL PROTECTED]>
---
 arch/ia64/kernel/signal.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/ia64/kernel/signal.c b/arch/ia64/kernel/signal.c
index cdb64cc..4c73009 100644
--- a/arch/ia64/kernel/signal.c
+++ b/arch/ia64/kernel/signal.c
@@ -98,7 +98,7 @@ restore_sigcontext (struct sigcontext __user *sc, struct 
sigscratch *scr)
        if ((flags & IA64_SC_FLAG_FPH_VALID) != 0) {
                struct ia64_psr *psr = ia64_psr(&scr->pt);
 
-               __copy_from_user(current->thread.fph, &sc->sc_fr[32], 96*16);
+               err |= __copy_from_user(current->thread.fph, &sc->sc_fr[32], 
96*16);
                psr->mfh = 0;   /* drop signal handler's fph contents... */
                preempt_disable();
                if (psr->dfh)
@@ -244,7 +244,7 @@ static long
 setup_sigcontext (struct sigcontext __user *sc, sigset_t *mask, struct 
sigscratch *scr)
 {
        unsigned long flags = 0, ifs, cfm, nat;
-       long err;
+       long err = 0;
 
        ifs = scr->pt.cr_ifs;
 
@@ -257,12 +257,12 @@ setup_sigcontext (struct sigcontext __user *sc, sigset_t 
*mask, struct sigscratc
        ia64_flush_fph(current);
        if ((current->thread.flags & IA64_THREAD_FPH_VALID)) {
                flags |= IA64_SC_FLAG_FPH_VALID;
-               __copy_to_user(&sc->sc_fr[32], current->thread.fph, 96*16);
+               err = __copy_to_user(&sc->sc_fr[32], current->thread.fph, 
96*16);
        }
 
        nat = ia64_get_scratch_nat_bits(&scr->pt, scr->scratch_unat);
 
-       err  = __put_user(flags, &sc->sc_flags);
+       err |= __put_user(flags, &sc->sc_flags);
        err |= __put_user(nat, &sc->sc_nat);
        err |= PUT_SIGSET(mask, &sc->sc_mask);
        err |= __put_user(cfm, &sc->sc_cfm);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to