]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
mips: new Memcheck test, bad_sioc
authorPetar Jovanovic <mips32r2@gmail.com>
Wed, 27 Sep 2017 13:55:16 +0000 (15:55 +0200)
committerPetar Jovanovic <mips32r2@gmail.com>
Wed, 27 Sep 2017 13:55:16 +0000 (15:55 +0200)
Check if Memcheck is able to recognize errors related to uninitialized
parameters in ioctl(SIOCSPGRP / SIOCATMARK) calls.

Test by Aleksandar Rikalo.

.gitignore
memcheck/tests/mips32/Makefile.am
memcheck/tests/mips32/bad_sioc.c [new file with mode: 0644]
memcheck/tests/mips32/bad_sioc.stderr.exp [new file with mode: 0644]
memcheck/tests/mips32/bad_sioc.stdout.exp [new file with mode: 0644]
memcheck/tests/mips32/bad_sioc.vgtest [new file with mode: 0644]
memcheck/tests/mips64/Makefile.am
memcheck/tests/mips64/bad_sioc.c [new symlink]
memcheck/tests/mips64/bad_sioc.stderr.exp [new symlink]
memcheck/tests/mips64/bad_sioc.stdout.exp [new symlink]
memcheck/tests/mips64/bad_sioc.vgtest [new symlink]

index 7c8bb8978d63b3a9d6d4d663c5c16d128b5872d1..ba06188c60353be26564b3a3343dc8468630803d 100644 (file)
 /memcheck/tests/mips32/.deps
 /memcheck/tests/mips32/Makefile
 /memcheck/tests/mips32/Makefile.in
+/memcheck/tests/mips32/bad_sioc
 /memcheck/tests/mips32/fadvise64
 
 # /memcheck/tests/mips64/
 /memcheck/tests/mips64/.deps
 /memcheck/tests/mips64/Makefile
 /memcheck/tests/mips64/Makefile.in
+/memcheck/tests/mips64/bad_sioc
 /memcheck/tests/mips64/fadvise64
 
 # /memcheck/tests/ppc32/
index c43280df56ed3b1f4daff89c350b9f759e7718f9..3b21909c9afefe35be5e86729d801dd4259342ec 100644 (file)
@@ -5,9 +5,12 @@ dist_noinst_SCRIPTS = \
        filter_stderr
 
 EXTRA_DIST = $(noinst_SCRIPTS) \
+       badsioc.stderr.exp badsioc.stdout.exp badsioc.vgtest \
        fadvise64.stderr.exp fadvise64.stdout.exp fadvise64.vgtest
 
+
 check_PROGRAMS = \
+       bad_sioc      \
        fadvise64
 
 fadvise64_CFLAGS = $(AM_CFLAGS) -Wno-uninitialized
diff --git a/memcheck/tests/mips32/bad_sioc.c b/memcheck/tests/mips32/bad_sioc.c
new file mode 100644 (file)
index 0000000..41f11e7
--- /dev/null
@@ -0,0 +1,19 @@
+#include <arpa/inet.h>
+#include <sys/ioctl.h>
+#include <sys/socket.h>
+#include <unistd.h>
+
+int main()
+{
+   pid_t pid;
+   int fd, atmark;
+
+   fd = socket(PF_INET, SOCK_DGRAM, 0);
+
+   ioctl(fd, SIOCSPGRP, &pid);
+   ioctl(fd, SIOCATMARK, &atmark);
+
+   close(fd);
+
+   return 0;
+}
diff --git a/memcheck/tests/mips32/bad_sioc.stderr.exp b/memcheck/tests/mips32/bad_sioc.stderr.exp
new file mode 100644 (file)
index 0000000..4a8b177
--- /dev/null
@@ -0,0 +1,12 @@
+Syscall param ioctl(SIOCSPGRP) points to uninitialised byte(s)
+   ...
+   by 0x........: main (bad_sioc.c:13)
+ Address 0x........ is on thread 1's stack
+ in frame #1, created by main (bad_sioc.c:7)
+
+Syscall param ioctl(SIOCATMARK) points to uninitialised byte(s)
+   ...
+   by 0x........: main (bad_sioc.c:14)
+ Address 0x........ is on thread 1's stack
+ in frame #1, created by main (bad_sioc.c:7)
+
diff --git a/memcheck/tests/mips32/bad_sioc.stdout.exp b/memcheck/tests/mips32/bad_sioc.stdout.exp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/memcheck/tests/mips32/bad_sioc.vgtest b/memcheck/tests/mips32/bad_sioc.vgtest
new file mode 100644 (file)
index 0000000..b6951b8
--- /dev/null
@@ -0,0 +1,2 @@
+prog: bad_sioc
+vgopts: -q
index c43280df56ed3b1f4daff89c350b9f759e7718f9..226f07703790d8e9d8f850c9952837f1e153de4f 100644 (file)
@@ -5,9 +5,11 @@ dist_noinst_SCRIPTS = \
        filter_stderr
 
 EXTRA_DIST = $(noinst_SCRIPTS) \
+       badsioc.stderr.exp badsioc.stdout.exp badsioc.vgtest \
        fadvise64.stderr.exp fadvise64.stdout.exp fadvise64.vgtest
 
 check_PROGRAMS = \
+       bad_sioc \
        fadvise64
 
 fadvise64_CFLAGS = $(AM_CFLAGS) -Wno-uninitialized
diff --git a/memcheck/tests/mips64/bad_sioc.c b/memcheck/tests/mips64/bad_sioc.c
new file mode 120000 (symlink)
index 0000000..9e776e5
--- /dev/null
@@ -0,0 +1 @@
+../mips32/bad_sioc.c
\ No newline at end of file
diff --git a/memcheck/tests/mips64/bad_sioc.stderr.exp b/memcheck/tests/mips64/bad_sioc.stderr.exp
new file mode 120000 (symlink)
index 0000000..312f0b7
--- /dev/null
@@ -0,0 +1 @@
+../mips32/bad_sioc.stderr.exp
\ No newline at end of file
diff --git a/memcheck/tests/mips64/bad_sioc.stdout.exp b/memcheck/tests/mips64/bad_sioc.stdout.exp
new file mode 120000 (symlink)
index 0000000..f9fab1c
--- /dev/null
@@ -0,0 +1 @@
+../mips32/bad_sioc.stdout.exp
\ No newline at end of file
diff --git a/memcheck/tests/mips64/bad_sioc.vgtest b/memcheck/tests/mips64/bad_sioc.vgtest
new file mode 120000 (symlink)
index 0000000..60e1b39
--- /dev/null
@@ -0,0 +1 @@
+../mips32/bad_sioc.vgtest
\ No newline at end of file