]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ipc-semc-avoid-overflow-of-semop-undo-semadj-value-fix
authorAndrew Morton <akpm@linux-foundation.org>
Fri, 3 Jan 2014 03:10:37 +0000 (14:10 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Fri, 3 Jan 2014 03:10:37 +0000 (14:10 +1100)
restore lessened scope of local `undo'

Cc: Davidlohr Bueso <davidlohr@hp.com>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Manfred Spraul <manfred@colorfullife.com>
Cc: Petr Mladek <pmladek@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
ipc/sem.c

index 0d437576144974ebb667e8858884b0f00c02bc83..1f98f678ead363726e1a3f7b2e8ea38c9b9addbc 100644 (file)
--- a/ipc/sem.c
+++ b/ipc/sem.c
@@ -599,7 +599,7 @@ SYSCALL_DEFINE3(semget, key_t, key, int, nsems, int, semflg)
 static int perform_atomic_semop(struct sem_array *sma, struct sembuf *sops,
                             int nsops, struct sem_undo *un, int pid)
 {
-       int result, undo, sem_op;
+       int result, sem_op;
        struct sembuf *sop;
        struct sem * curr;
 
@@ -618,7 +618,7 @@ static int perform_atomic_semop(struct sem_array *sma, struct sembuf *sops,
                        goto out_of_range;
 
                if (sop->sem_flg & SEM_UNDO) {
-                       undo = un->semadj[sop->sem_num] - sem_op;
+                       int undo = un->semadj[sop->sem_num] - sem_op;
                        /* Exceeding the undo range is an error. */
                        if (undo < (-SEMAEM - 1) || undo > SEMAEM)
                                goto out_of_range;