https://github.com/torvalds/linux
Revision 2df7a7d1cd07626dd235ca102830ebfc6c01a09e authored by Sergei Trofimovich on 25 August 2011, 22:59:02 UTC, committed by Linus Torvalds on 25 August 2011, 23:25:33 UTC
The bug was accidentally found by the following program:

    #include <asm/sysinfo.h>
    #include <asm/unistd.h>
    #include <sys/syscall.h>
    static int setsysinfo(unsigned long op, void *buffer, unsigned long size,
                          int *start, void *arg, unsigned long flag) {
        return syscall(__NR_osf_setsysinfo, op, buffer, size, start, arg, flag);
    }

    int main(int argc, char **argv) {
        short x[10];
        unsigned int buf[2] = { SSIN_UACPROC, UAC_SIGBUS, };
        setsysinfo(SSI_NVPAIRS, buf, 1, 0, 0, 0);

        int  *y = (int*) (x+1);
        *y = 0;
        return 0;
    }

The program shoud fail on SIGBUS, but didn't.

The patch is a second part of userspace flag fix (commit 745dd2405e28
"Alpha: Rearrange thread info flags fixing two regressions").

Deleted outdated out-of-sync 'UAC_SHIFT' (the cause of bug) in favour of
'ALPHA_UAC_SHIFT'.

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Acked-by: Michael Cree <mcree@orcon.net.nz>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Matt Turner <mattst88@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 06ed462
History
Tip revision: 2df7a7d1cd07626dd235ca102830ebfc6c01a09e authored by Sergei Trofimovich on 25 August 2011, 22:59:02 UTC
alpha: unbreak osf_setsysinfo(SSI_NVPAIRS, [SSIN_UACPROC, UAC_SIGBUS])
Tip revision: 2df7a7d
File Mode Size
check-all.sh -rw-r--r-- 434 bytes
rt-tester.py -rw-r--r-- 5.2 KB
t2-l1-2rt-sameprio.tst -rw-r--r-- 1.5 KB
t2-l1-pi.tst -rw-r--r-- 1.2 KB
t2-l1-signal.tst -rw-r--r-- 1.2 KB
t2-l2-2rt-deadlock.tst -rw-r--r-- 1.3 KB
t3-l1-pi-1rt.tst -rw-r--r-- 1.4 KB
t3-l1-pi-2rt.tst -rw-r--r-- 1.4 KB
t3-l1-pi-3rt.tst -rw-r--r-- 1.4 KB
t3-l1-pi-signal.tst -rw-r--r-- 1.5 KB
t3-l1-pi-steal.tst -rw-r--r-- 1.6 KB
t3-l2-pi.tst -rw-r--r-- 1.4 KB
t4-l2-pi-deboost.tst -rw-r--r-- 2.0 KB
t5-l4-pi-boost-deboost-setsched.tst -rw-r--r-- 2.9 KB
t5-l4-pi-boost-deboost.tst -rw-r--r-- 2.2 KB

back to top