Commit Graph

8 Commits

Author SHA1 Message Date
Philippe Waroquiers
54145019b0 n-i-bz Fix possible stack trashing by semctl syscall wrapping
The modified test none/tests/sem crashes with a SEGV when valgrind is compiled
with lto on various amd64 platforms (debian/gcc 6.3, RHEL7/gcc 6.4,
Ubuntu/gcc 7.2)

The problem is that the vki_semid_ds buf is not what is expected by the kernel:
the kernel expects a bigger structure vki_semid64_ds (at least on
these platforms).
Getting the sem_nsems seems to work by chance, as sem_nsems is at
the same offset in both vki_semid_ds and vki_semid64_ds.
However, e.g. the ctime was not set properly after syscall return,
and 2 words after sem_nsems were set to 0 by the kernel, causing
the SEGV, as a spilled register became 0.

Fix consists in using the 64 bit version for __NR_semctl.
Tested on debian/amd64 and s390x.
2018-04-01 14:31:40 +02:00
Philippe Waroquiers
979dc8596b Introduce a test to reproduce bug 123837 (semctl GETVAL false positive)
The test succeeds on amd64, but fails on x86, with the following diff:

+Syscall param semctl(arg) points to uninitialised byte(s)
+   at 0x........: semctl@@GLIBC_2.2 (semctl.c:109)
+   by 0x........: main (sem.c:36)
+ Address 0x........ is on thread 1's stack
+
+Syscall param semctl(arg) points to uninitialised byte(s)
+   at 0x........: semctl@@GLIBC_2.2 (semctl.c:109)
+   by 0x........: main (sem.c:43)
+ Address 0x........ is on thread 1's stack
+



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13073
2012-10-21 18:46:09 +00:00
Julian Seward
043bf89f2a Minor tidying for regtests on AIX.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6395
2006-12-12 01:38:15 +00:00
Julian Seward
7b0afe576e Kludge to stop this program hanging on ppc32-linux and therefore
messing up the testsuite.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4087
2005-07-02 20:11:59 +00:00
Tom Hughes
05f8bea376 Don't bother trying to test semtimedop if it isn't available.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2416
2004-06-14 17:27:41 +00:00
Tom Hughes
d5fcc39f7d Include config.h so that the test for semtimedop works.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2415
2004-06-14 13:15:40 +00:00
Tom Hughes
d9d4e91c04 Fixed the sem test to work on systems with semtimedop.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2414
2004-06-14 12:33:43 +00:00
Tom Hughes
05369f9e57 Add support for the semtimedop system call.
Based on patch from Peter Knaggs <sedragdnuon@yahoo.com>.

CCMAIL: 79714-done@bugs.kde.org


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2410
2004-06-13 14:23:00 +00:00