blob: 984d70e1733e98675ebd3c77ed2653ca48c530c2 [file] [log] [blame]
Common subdirectories: scrashme/.git and scrashme.new/.git
diff --new-file --unified=5 scrashme/arm.h scrashme.new/arm.h
--- scrashme/arm.h 1969-12-31 16:00:00.000000000 -0800
+++ scrashme.new/arm.h 2011-03-21 14:43:40.000000000 -0700
@@ -0,0 +1,4 @@
+#include "syscalls-arm.h"
+
+#define KERNEL_ADDR 0xc0000000
+
diff --new-file --unified=5 scrashme/sanitise.c scrashme.new/sanitise.c
--- scrashme/sanitise.c 2010-03-18 04:45:47.000000000 -0700
+++ scrashme.new/sanitise.c 2011-03-22 07:04:23.444767234 -0700
@@ -21,10 +21,14 @@
#endif
#ifdef __powerpc__
#define PAGE_OFFSET 0xC0000000
#define TASK_SIZE (PAGE_OFFSET)
#endif
+#ifdef __arm__
+#define PAGE_OFFSET 0xC0000000
+#define TASK_SIZE (PAGE_OFFSET)
+#endif
#ifdef __ia64__
#define PAGE_OFFSET 0xe000000000000000
#define TASK_SIZE 0xa000000000000000
#endif
#ifdef __sparc__
diff --new-file --unified=5 scrashme/scrashme.c scrashme.new/scrashme.c
--- scrashme/scrashme.c 2010-03-18 04:45:47.000000000 -0700
+++ scrashme.new/scrashme.c 2011-03-22 07:04:54.584919926 -0700
@@ -25,10 +25,13 @@
#include "x86-64.h"
#endif
#ifdef __i386__
#include "i386.h"
#endif
+#ifdef __arm__
+#include "arm.h"
+#endif
#ifdef __powerpc__
#include "ppc.h"
#endif
#ifdef __ia64__
#include "ia64.h"
@@ -481,11 +484,13 @@
}
(void)signal(SIGCHLD, SIG_IGN);
srand(seed);
- chroot("tmp");
+ if (chroot("tmp")) {
+ printf("chroot failed!\n");
+ }
}
static void run_mode(void)
{
int i;
@@ -582,12 +587,16 @@
syscalls = syscalls_ppc;
#elif __ia64__
syscalls = syscalls_ia64;
#elif __sparc__
syscalls = syscalls_sparc;
-#else
+#elif __i386__
syscalls = syscalls_i386;
+#elif __arm__
+ syscalls = syscalls_arm;
+#else
+#error Currently unsupported syscall architecture.
#endif
page_size = getpagesize();
progname = argv[0];
diff --new-file --unified=5 scrashme/syscalls-arm.h scrashme.new/syscalls-arm.h
--- scrashme/syscalls-arm.h 1969-12-31 16:00:00.000000000 -0800
+++ scrashme.new/syscalls-arm.h 2011-03-22 10:29:47.995365865 -0700
@@ -0,0 +1,373 @@
+/* Syscalls from arch/arm/kernel/call.S as of 2.6.32.26+drm33.12 */
+
+#include "scrashme.h"
+#include "sanitise.h"
+
+#define NR_SYSCALLS 364
+struct syscalltable syscalls_arm[NR_SYSCALLS + 1] = {
+/* 0 */ { .name = "restart_syscall" },
+ { .name = "exit", .flags = AVOID_SYSCALL },
+ { .name = "fork_wrapper", .flags = AVOID_SYSCALL },
+ { .name = "read", .sanitise = sanitise_read },
+ { .name = "write", .sanitise = sanitise_write },
+/* 5 */ { .name = "open" },
+ { .name = "close", .sanitise = sanitise_close },
+ { .name = "ni_syscall" }, /* was sys_waitpid */
+ { .name = "creat" },
+ { .name = "link" },
+/* 10 */ { .name = "unlink" },
+ { .name = "execve_wrapper" },
+ { .name = "chdir" },
+ { .name = "time", .flags = AVOID_SYSCALL }, /* used by libc4 */
+ { .name = "mknod" },
+/* 15 */ { .name = "chmod" },
+ { .name = "lchown16" },
+ { .name = "ni_syscall" }, /* was sys_break */
+ { .name = "ni_syscall" }, /* was sys_stat */
+ { .name = "lseek", .sanitise = sanitise_lseek },
+/* 20 */ { .name = "getpid" },
+ { .name = "mount" },
+ { .name = "oldumount", .flags = AVOID_SYSCALL }, /* used by libc4 */
+ { .name = "setuid16" },
+ { .name = "getuid16" },
+/* 25 */ { .name = "stime", .flags = AVOID_SYSCALL },
+ { .name = "ptrace" },
+ { .name = "alarm", .flags = AVOID_SYSCALL }, /* used by libc4 */
+ { .name = "ni_syscall" }, /* was sys_fstat */
+ { .name = "pause", .flags = AVOID_SYSCALL },
+/* 30 */ { .name = "utime", .flags = AVOID_SYSCALL }, /* used by libc4 */
+ { .name = "ni_syscall" }, /* was sys_stty */
+ { .name = "ni_syscall" }, /* was sys_getty */
+ { .name = "access" },
+ { .name = "nice" },
+/* 35 */ { .name = "ni_syscall" }, /* was sys_ftime */
+ { .name = "sync" },
+ { .name = "kill" },
+ { .name = "rename" },
+ { .name = "mkdir" },
+/* 40 */ { .name = "rmdir" },
+ { .name = "dup" },
+ { .name = "pipe" },
+ { .name = "times" },
+ { .name = "ni_syscall" }, /* was sys_prof */
+/* 45 */ { .name = "brk" },
+ { .name = "setgid16" },
+ { .name = "getgid16" },
+ { .name = "ni_syscall" }, /* was sys_signal */
+ { .name = "geteuid16" },
+/* 50 */ { .name = "getegid16" },
+ { .name = "acct" },
+ { .name = "umount" },
+ { .name = "ni_syscall" }, /* was sys_lock */
+ { .name = "ioctl", .sanitise = sanitise_ioctl },
+/* 55 */ { .name = "fcntl" },
+ { .name = "ni_syscall" }, /* was sys_mpx */
+ { .name = "setpgid" },
+ { .name = "ni_syscall" }, /* was sys_ulimit */
+ { .name = "ni_syscall" }, /* was sys_olduname */
+/* 60 */ { .name = "umask" },
+ { .name = "chroot" },
+ { .name = "ustat" },
+ { .name = "dup2" },
+ { .name = "getppid" },
+/* 65 */ { .name = "getpgrp" },
+ { .name = "setsid" },
+ { .name = "sigaction" },
+ { .name = "ni_syscall" }, /* was sys_sgetmask */
+ { .name = "ni_syscall" }, /* was sys_ssetmask */
+/* 70 */ { .name = "setreuid16" },
+ { .name = "setregid16" },
+ { .name = "sigsuspend", .flags = AVOID_SYSCALL },
+ { .name = "sigpending" },
+ { .name = "sethostname" },
+/* 75 */ { .name = "setrlimit" },
+ { .name = "old_getrlimit", .flags = AVOID_SYSCALL }, /* used by libc4 */
+ { .name = "getrusage" },
+ { .name = "gettimeofday" },
+ { .name = "settimeofday" },
+/* 80 */ { .name = "getgroups16" },
+ { .name = "setgroups16" },
+ { .name = "old_select", .flags = AVOID_SYSCALL },
+ { .name = "symlink" },
+ { .name = "ni_syscall" }, /* was sys_lstat */
+/* 85 */ { .name = "readlink" },
+ { .name = "uselib" },
+ { .name = "swapon" },
+ { .name = "reboot" },
+ { .name = "old_readdir", .flags = AVOID_SYSCALL }, /* used by libc4 */
+/* 90 */ { .name = "old_mmaap", .flags = AVOID_SYSCALL }, /* used by libc4 */
+ { .name = "munmap" },
+ { .name = "truncate" },
+ { .name = "ftruncate" },
+ { .name = "fchmod" },
+/* 95 */ { .name = "fchown16" },
+ { .name = "getpriority" },
+ { .name = "setpriority" },
+ { .name = "ni_syscall" }, /* was sys_profil */
+ { .name = "statfs" },
+/* 100 */ { .name = "fstatfs" },
+ { .name = "ni_syscall" }, /* sys_ioperm */
+ { .name = "sys_socketcall", .flags = AVOID_SYSCALL },
+ { .name = "syslog" },
+ { .name = "setitimer" },
+/* 105 */ { .name = "getitimer" },
+ { .name = "newstat" },
+ { .name = "newlstat" },
+ { .name = "newfstat", .sanitise = sanitise_newfstat },
+ { .name = "ni_syscall" }, /* was sys_uname */
+/* 110 */ { .name = "ni_syscall" }, /* was sys_iopl */
+ { .name = "vhangup" },
+ { .name = "ni_syscall" },
+ { .name = "syscall", .flags = AVOID_SYSCALL }, /* call a syscall */
+ { .name = "wait4" },
+/* 115 */ { .name = "swapoff" },
+ { .name = "sysinfo" },
+ { .name = "sys_ipc", .flags = AVOID_SYSCALL },
+ { .name = "fsync" },
+ { .name = "sigreturn_wrapper" },
+/* 120 */ { .name = "clone_wrapper", .flags = AVOID_SYSCALL },
+ { .name = "setdomainname" },
+ { .name = "newuname" },
+ { .name = "ni_syscall" }, /* modify_ldt */
+ { .name = "adjtimex" },
+/* 125 */ { .name = "mprotect", .sanitise = sanitise_mprotect },
+ { .name = "sigprocmask" },
+ { .name = "ni_syscall" }, /* was sys_create_module */
+ { .name = "init_module" },
+ { .name = "delete_module" },
+/* 130 */ { .name = "ni_syscall" }, /* was sys_get_kernel_syms */
+ { .name = "quotactl" },
+ { .name = "getpgid" },
+ { .name = "fchdir" },
+ { .name = "bdflush" },
+/* 135 */ { .name = "sysfs" },
+ { .name = "personality" },
+ { .name = "ni_syscall" }, /* reserved for afs_syscall */
+ { .name = "setfsuid16" },
+ { .name = "setfsgid16" },
+/* 140 */ { .name = "llseek" },
+ { .name = "getdents" },
+ { .name = "select", .flags = AVOID_SYSCALL },
+ { .name = "flock" },
+ { .name = "msync" },
+/* 145 */ { .name = "readv", .sanitise = sanitise_readv },
+ { .name = "writev", .sanitise = sanitise_writev },
+ { .name = "getsid" },
+ { .name = "fdatasync" },
+ { .name = "sysctl" },
+/* 150 */ { .name = "mlock" },
+ { .name = "munlock" },
+ { .name = "mlockall" },
+ { .name = "munlockall" },
+ { .name = "sched_setparam" },
+/* 155 */ { .name = "sched_getparam" },
+ { .name = "sched_setscheduler" },
+ { .name = "sched_getscheduler" },
+ { .name = "sched_yield" },
+ { .name = "sched_get_priority_max" },
+/* 160 */ { .name = "sched_get_priority_min" },
+ { .name = "sched_rr_get_interval" },
+ { .name = "nanosleep" },
+ { .name = "mremap", .sanitise = sanitise_mremap },
+ { .name = "setresuid16" },
+/* 165 */ { .name = "getresuid16" },
+ { .name = "ni_syscall" }, /* vm86 */
+ { .name = "ni_syscall" }, /* was sys_query_module */
+ { .name = "poll" },
+ { .name = "nfsservctl" },
+/* 170 */ { .name = "setresgid16" },
+ { .name = "getresgid16" },
+ { .name = "prctl" },
+ { .name = "rt_sigreturn_wrapper" },
+ { .name = "rt_sigaction", .sanitise = sanitise_rt_sigaction },
+/* 175 */ { .name = "rt_sigprocmask", .sanitise = sanitise_rt_sigprocmask },
+ { .name = "rt_sigpending" },
+ { .name = "rt_sigtimedwait" },
+ { .name = "rt_sigqueueinfo" },
+ { .name = "rt_sigsuspend", .flags = AVOID_SYSCALL },
+/* 180 */ { .name = "pread64", .sanitise = sanitise_pread64 },
+ { .name = "pwrite64", .sanitise = sanitise_pwrite64 },
+ { .name = "chown16" },
+ { .name = "getcwd" },
+ { .name = "capget" },
+/* 185 */ { .name = "capset" },
+ { .name = "sigaltstack_wrapper" },
+ { .name = "sendfile" },
+ { .name = "ni_syscall" }, /* getpmsg */
+ { .name = "ni_syscall" }, /* putpmsg */
+/* 190 */ { .name = "vfork_wrapper", .flags = AVOID_SYSCALL },
+ { .name = "getrlimit" },
+ { .name = "mmap2", .sanitise = sanitise_mmap },
+ { .name = "truncate64" },
+ { .name = "ftruncate64" },
+ /* 195 */ { .name = "stat64" },
+ { .name = "lstat64" },
+ { .name = "fstat64" },
+ { .name = "lchown" },
+ { .name = "getuid" },
+/* 200 */ { .name = "getgid" },
+ { .name = "geteuid" },
+ { .name = "getegid" },
+ { .name = "setreuid" },
+ { .name = "setregid" },
+/* 205 */ { .name = "getgroups" },
+ { .name = "setgroups" },
+ { .name = "fchown" },
+ { .name = "setresuid" },
+ { .name = "getresuid" },
+/* 210 */ { .name = "setresgid" },
+ { .name = "getresgid" },
+ { .name = "chown" },
+ { .name = "setuid" },
+ { .name = "setgid" },
+/* 215 */ { .name = "setfsuid" },
+ { .name = "setfsgid" },
+ { .name = "getdents64" },
+ { .name = "pivot_root", .flags = CAPABILITY_CHECK },
+ { .name = "mincore" },
+/* 220 */ { .name = "madvise" },
+ { .name = "fcntl64" },
+ { .name = "ni_syscall" }, /* TUX */
+ { .name = "ni_syscall" },
+ { .name = "gettid" },
+/* 225 */ { .name = "readahead" },
+ { .name = "setxattr" },
+ { .name = "lsetxattr" },
+ { .name = "fsetxattr" },
+ { .name = "getxattr" },
+/* 230 */ { .name = "lgetxattr" },
+ { .name = "fgetxattr" },
+ { .name = "listxattr" },
+ { .name = "llistxattr" },
+ { .name = "flistxattr" },
+/* 235 */ { .name = "removexattr" },
+ { .name = "lremovexattr" },
+ { .name = "fremovexattr" },
+ { .name = "tkill" },
+ { .name = "sendfile64" },
+/* 240 */ { .name = "futex" },
+ { .name = "sched_setaffinity" },
+ { .name = "sched_getaffinity" },
+ { .name = "io_setup" },
+ { .name = "io_destroy" },
+/* 245 */ { .name = "io_getevents" },
+ { .name = "io_submit" },
+ { .name = "io_cancel" },
+ { .name = "exit_group", .flags = AVOID_SYSCALL },
+ { .name = "lookup_dcookie", .flags = CAPABILITY_CHECK },
+/* 250 */ { .name = "epoll_create" },
+ { .name = "epoll_ctl" },
+ { .name = "_epoll_wait" },
+ { .name = "remap_file_pages" },
+ { .name = "ni_syscall" }, /* sys_set_thread_area */
+/* 255 */ { .name = "ni_syscall" }, /* sys_get_thread_area */
+ { .name = "set_tid_address" },
+ { .name = "timer_create" },
+ { .name = "timer_settime" },
+ { .name = "timer_gettime" },
+/* 260 */ { .name = "timer_getoverrun" },
+ { .name = "timer_delete" },
+ { .name = "clock_settime" },
+ { .name = "clock_gettime" },
+ { .name = "clock_getres" },
+/* 265 */ { .name = "clock_nanosleep" },
+ { .name = "statfs64_wrapper" },
+ { .name = "fstatfs64_wrapper" },
+ { .name = "tgkill" },
+ { .name = "utimes" },
+/* 270 */ { .name = "arm_fadvise64_64" },
+ { .name = "pciconfig_iobase" },
+ { .name = "pciconfig_read" },
+ { .name = "pciconfig_write" },
+ { .name = "mq_open" },
+/* 275 */ { .name = "mq_unlink" },
+ { .name = "mq_timedsend" },
+ { .name = "mq_timedreceive" },
+ { .name = "mq_notify" },
+ { .name = "mq_getsetattr" },
+/* 280 */ { .name = "waitid" },
+ { .name = "socket" },
+ { .name = "bind" },
+ { .name = "connect" },
+ { .name = "listen" },
+/* 285 */ { .name = "accept" },
+ { .name = "getsockname" },
+ { .name = "getpeername" },
+ { .name = "socketpair" },
+ { .name = "send" },
+/* 290 */ { .name = "sendto" },
+ { .name = "recv" },
+ { .name = "recvfrom" },
+ { .name = "shutdown" },
+ { .name = "setsockopt" },
+/* 295 */ { .name = "getsockopt" },
+ { .name = "sendmsg" },
+ { .name = "recvmsg" },
+ { .name = "semop" },
+ { .name = "semget" },
+/* 300 */ { .name = "semctl" },
+ { .name = "msgsnd" },
+ { .name = "msgrcv" },
+ { .name = "msgget" },
+ { .name = "msgctl" },
+/* 305 */ { .name = "shmat" },
+ { .name = "shmdt" },
+ { .name = "shmget" },
+ { .name = "shmctl" },
+ { .name = "add_key" },
+/* 310 */ { .name = "request_key" },
+ { .name = "keyctl" },
+ { .name = "semtimedop", },
+/* vserver */ { .name = "ni_syscall" },
+ { .name = "ioprio_set" },
+/* 315 */ { .name = "ioprio_get" },
+ { .name = "inotify_init" },
+ { .name = "inotify_add_watch" },
+ { .name = "inotify_rm_watch" },
+ { .name = "mbind" },
+/* 320 */ { .name = "get_mempolicy" },
+ { .name = "set_mempolicy" },
+ { .name = "openat" },
+ { .name = "mkdirat" },
+ { .name = "mknodat" },
+/* 325 */ { .name = "fchownat" },
+ { .name = "futimesat" },
+ { .name = "fstatat64" },
+ { .name = "unlinkat" },
+ { .name = "renameat" },
+/* 330 */ { .name = "linkat" },
+ { .name = "symlinkat" },
+ { .name = "readlinkat" },
+ { .name = "fchmodat" },
+ { .name = "faccessat" },
+/* 335 */ { .name = "pselect6" },
+ { .name = "ppoll" },
+ { .name = "unshare" },
+ { .name = "set_robust_list", .sanitise = sanitise_set_robust_list },
+ { .name = "get_robust_list" },
+/* 340 */ { .name = "splice", .sanitise = sanitise_splice },
+ { .name = "sync_file_range2", .sanitise = sanitise_sync_file_range },
+ { .name = "tee", .sanitise = sanitise_tee },
+ { .name = "vmsplice", .sanitise = sanitise_vmsplice },
+ { .name = "move_pages" },
+/* 345 */ { .name = "getcpu" },
+ { .name = "epoll_pwait" },
+ { .name = "kexec_load" },
+ { .name = "utimensat" },
+ { .name = "signalfd" },
+/* 350 */ { .name = "timerfd_create" },
+ { .name = "eventfd" },
+ { .name = "fallocate" },
+ { .name = "timerfd_settime" },
+ { .name = "timerfd_gettime" },
+/* 355 */ { .name = "signalfd4" },
+ { .name = "eventfd2" },
+ { .name = "epoll_create1" },
+ { .name = "dup3" },
+ { .name = "pipe2" },
+/* 360 */ { .name = "inotify_init1" },
+ { .name = "preadv" },
+ { .name = "pwritev" },
+ { .name = "rt_tgsigqueueinfo" },
+ { .name = "perf_event_open" },
+};