Home | History | Annotate | Download | only in scrashme
      1 Common subdirectories: scrashme/.git and scrashme.new/.git
      2 diff --new-file --unified=5 scrashme/arm.h scrashme.new/arm.h
      3 --- scrashme/arm.h	1969-12-31 16:00:00.000000000 -0800
      4 +++ scrashme.new/arm.h	2011-03-21 14:43:40.000000000 -0700
      5 @@ -0,0 +1,4 @@
      6 +#include "syscalls-arm.h"
      7 +
      8 +#define KERNEL_ADDR	0xc0000000
      9 +
     10 diff --new-file --unified=5 scrashme/sanitise.c scrashme.new/sanitise.c
     11 --- scrashme/sanitise.c	2010-03-18 04:45:47.000000000 -0700
     12 +++ scrashme.new/sanitise.c	2011-03-22 07:04:23.444767234 -0700
     13 @@ -21,10 +21,14 @@
     14  #endif
     15  #ifdef __powerpc__
     16  #define PAGE_OFFSET 0xC0000000
     17  #define TASK_SIZE (PAGE_OFFSET)
     18  #endif
     19 +#ifdef __arm__
     20 +#define PAGE_OFFSET 0xC0000000
     21 +#define TASK_SIZE (PAGE_OFFSET)
     22 +#endif
     23  #ifdef __ia64__
     24  #define PAGE_OFFSET 0xe000000000000000
     25  #define TASK_SIZE 0xa000000000000000
     26  #endif
     27  #ifdef __sparc__
     28 diff --new-file --unified=5 scrashme/scrashme.c scrashme.new/scrashme.c
     29 --- scrashme/scrashme.c	2010-03-18 04:45:47.000000000 -0700
     30 +++ scrashme.new/scrashme.c	2011-03-22 07:04:54.584919926 -0700
     31 @@ -25,10 +25,13 @@
     32  #include "x86-64.h"
     33  #endif
     34  #ifdef __i386__
     35  #include "i386.h"
     36  #endif
     37 +#ifdef __arm__
     38 +#include "arm.h"
     39 +#endif
     40  #ifdef __powerpc__
     41  #include "ppc.h"
     42  #endif
     43  #ifdef __ia64__
     44  #include "ia64.h"
     45 @@ -481,11 +484,13 @@
     46  	}
     47  	(void)signal(SIGCHLD, SIG_IGN);
     48  
     49  	srand(seed);
     50  
     51 -	chroot("tmp");
     52 +	if (chroot("tmp")) {
     53 +		printf("chroot failed!\n");
     54 +	}
     55  }
     56  
     57  static void run_mode(void)
     58  {
     59  	int i;
     60 @@ -582,12 +587,16 @@
     61  	syscalls = syscalls_ppc;
     62  #elif __ia64__
     63  	syscalls = syscalls_ia64;
     64  #elif __sparc__
     65  	syscalls = syscalls_sparc;
     66 -#else
     67 +#elif __i386__
     68  	syscalls = syscalls_i386;
     69 +#elif __arm__
     70 +	syscalls = syscalls_arm;
     71 +#else
     72 +#error Currently unsupported syscall architecture.
     73  #endif
     74  
     75  	page_size = getpagesize();
     76  
     77  	progname = argv[0];
     78 diff --new-file --unified=5 scrashme/syscalls-arm.h scrashme.new/syscalls-arm.h
     79 --- scrashme/syscalls-arm.h	1969-12-31 16:00:00.000000000 -0800
     80 +++ scrashme.new/syscalls-arm.h	2011-03-22 10:29:47.995365865 -0700
     81 @@ -0,0 +1,373 @@
     82 +/* Syscalls from arch/arm/kernel/call.S as of 2.6.32.26+drm33.12 */
     83 +
     84 +#include "scrashme.h"
     85 +#include "sanitise.h"
     86 +
     87 +#define NR_SYSCALLS 364
     88 +struct syscalltable syscalls_arm[NR_SYSCALLS + 1] = {
     89 +/* 0 */		{ .name = "restart_syscall" },
     90 +		{ .name = "exit", .flags = AVOID_SYSCALL },
     91 +		{ .name = "fork_wrapper", .flags = AVOID_SYSCALL },
     92 +		{ .name = "read", .sanitise = sanitise_read  },
     93 +		{ .name = "write", .sanitise = sanitise_write },
     94 +/* 5 */		{ .name = "open" },
     95 +		{ .name = "close", .sanitise = sanitise_close },
     96 +		{ .name = "ni_syscall" },		/* was sys_waitpid */
     97 +		{ .name = "creat" },
     98 +		{ .name = "link" },
     99 +/* 10 */	{ .name = "unlink" },
    100 +		{ .name = "execve_wrapper" },
    101 +		{ .name = "chdir" },
    102 +		{ .name = "time", .flags = AVOID_SYSCALL },	/* used by libc4 */
    103 +		{ .name = "mknod" },
    104 +/* 15 */	{ .name = "chmod" },
    105 +		{ .name = "lchown16" },
    106 +		{ .name = "ni_syscall" },		/* was sys_break */
    107 +		{ .name = "ni_syscall" },		/* was sys_stat */
    108 +		{ .name = "lseek", .sanitise = sanitise_lseek },
    109 +/* 20 */	{ .name = "getpid" },
    110 +		{ .name = "mount" },
    111 +		{ .name = "oldumount", .flags = AVOID_SYSCALL },	/* used by libc4 */
    112 +		{ .name = "setuid16" },
    113 +		{ .name = "getuid16" },
    114 +/* 25 */	{ .name = "stime", .flags = AVOID_SYSCALL },
    115 +		{ .name = "ptrace" },
    116 +		{ .name = "alarm", .flags = AVOID_SYSCALL },	/* used by libc4 */
    117 +		{ .name = "ni_syscall" },		/* was sys_fstat */
    118 +		{ .name = "pause", .flags = AVOID_SYSCALL },
    119 +/* 30 */	{ .name = "utime", .flags = AVOID_SYSCALL },	/* used by libc4 */
    120 +		{ .name = "ni_syscall" },		/* was sys_stty */
    121 +		{ .name = "ni_syscall" },		/* was sys_getty */
    122 +		{ .name = "access" },
    123 +		{ .name = "nice" },
    124 +/* 35 */	{ .name = "ni_syscall" },		/* was sys_ftime */
    125 +		{ .name = "sync" },
    126 +		{ .name = "kill" },
    127 +		{ .name = "rename" },
    128 +		{ .name = "mkdir" },
    129 +/* 40 */	{ .name = "rmdir" },
    130 +		{ .name = "dup" },
    131 +		{ .name = "pipe" },
    132 +		{ .name = "times" },
    133 +		{ .name = "ni_syscall" },		/* was sys_prof */
    134 +/* 45 */	{ .name = "brk" },
    135 +		{ .name = "setgid16" },
    136 +		{ .name = "getgid16" },
    137 +		{ .name = "ni_syscall" },		/* was sys_signal */
    138 +		{ .name = "geteuid16" },
    139 +/* 50 */	{ .name = "getegid16" },
    140 +		{ .name = "acct" },
    141 +		{ .name = "umount" },
    142 +		{ .name = "ni_syscall" },		/* was sys_lock */
    143 +		{ .name = "ioctl", .sanitise = sanitise_ioctl },
    144 +/* 55 */	{ .name = "fcntl" },
    145 +		{ .name = "ni_syscall" },		/* was sys_mpx */
    146 +		{ .name = "setpgid" },
    147 +		{ .name = "ni_syscall" },		/* was sys_ulimit */
    148 +		{ .name = "ni_syscall" },		/* was sys_olduname */
    149 +/* 60 */	{ .name = "umask" },
    150 +		{ .name = "chroot" },
    151 +		{ .name = "ustat" },
    152 +		{ .name = "dup2" },
    153 +		{ .name = "getppid" },
    154 +/* 65 */	{ .name = "getpgrp" },
    155 +		{ .name = "setsid" },
    156 +		{ .name = "sigaction" },
    157 +		{ .name = "ni_syscall" },		/* was sys_sgetmask */
    158 +		{ .name = "ni_syscall" },		/* was sys_ssetmask */
    159 +/* 70 */	{ .name = "setreuid16" },
    160 +		{ .name = "setregid16" },
    161 +		{ .name = "sigsuspend", .flags = AVOID_SYSCALL },
    162 +		{ .name = "sigpending" },
    163 +		{ .name = "sethostname" },
    164 +/* 75 */	{ .name = "setrlimit" },
    165 +		{ .name = "old_getrlimit", .flags = AVOID_SYSCALL }, /* used by libc4 */
    166 +		{ .name = "getrusage" },
    167 +		{ .name = "gettimeofday" },
    168 +		{ .name = "settimeofday" },
    169 +/* 80 */	{ .name = "getgroups16" },
    170 +		{ .name = "setgroups16" },
    171 +		{ .name = "old_select", .flags = AVOID_SYSCALL },
    172 +		{ .name = "symlink" },
    173 +		{ .name = "ni_syscall" },		/* was sys_lstat */
    174 +/* 85 */	{ .name = "readlink" },
    175 +		{ .name = "uselib" },
    176 +		{ .name = "swapon" },
    177 +		{ .name = "reboot" },
    178 +		{ .name = "old_readdir", .flags = AVOID_SYSCALL },	/* used by libc4 */
    179 +/* 90 */	{ .name = "old_mmaap", .flags = AVOID_SYSCALL },	/* used by libc4 */
    180 +		{ .name = "munmap" },
    181 +		{ .name = "truncate" },
    182 +		{ .name = "ftruncate" },
    183 +		{ .name = "fchmod" },
    184 +/* 95 */	{ .name = "fchown16" },
    185 +		{ .name = "getpriority" },
    186 +		{ .name = "setpriority" },
    187 +		{ .name = "ni_syscall" },		/* was sys_profil */
    188 +		{ .name = "statfs" },
    189 +/* 100 */	{ .name = "fstatfs" },
    190 +		{ .name = "ni_syscall" },		/* sys_ioperm */
    191 +		{ .name = "sys_socketcall", .flags = AVOID_SYSCALL },
    192 +		{ .name = "syslog" },
    193 +		{ .name = "setitimer" },
    194 +/* 105 */	{ .name = "getitimer" },
    195 +		{ .name = "newstat" },
    196 +		{ .name = "newlstat" },
    197 +		{ .name = "newfstat", .sanitise = sanitise_newfstat },
    198 +		{ .name = "ni_syscall" },		/* was sys_uname */
    199 +/* 110 */	{ .name = "ni_syscall" },		/* was sys_iopl */
    200 +		{ .name = "vhangup" },
    201 +		{ .name = "ni_syscall" },
    202 +		{ .name = "syscall", .flags = AVOID_SYSCALL },	/* call a syscall */
    203 +		{ .name = "wait4" },
    204 +/* 115 */	{ .name = "swapoff" },
    205 +		{ .name = "sysinfo" },
    206 +		{ .name = "sys_ipc", .flags = AVOID_SYSCALL },
    207 +		{ .name = "fsync" },
    208 +		{ .name = "sigreturn_wrapper" },
    209 +/* 120 */	{ .name = "clone_wrapper", .flags = AVOID_SYSCALL  },
    210 +		{ .name = "setdomainname" },
    211 +		{ .name = "newuname" },
    212 +		{ .name = "ni_syscall" },		/* modify_ldt */
    213 +		{ .name = "adjtimex" },
    214 +/* 125 */	{ .name = "mprotect", .sanitise = sanitise_mprotect },
    215 +		{ .name = "sigprocmask" },
    216 +		{ .name = "ni_syscall" },		/* was sys_create_module */
    217 +		{ .name = "init_module" },
    218 +		{ .name = "delete_module" },
    219 +/* 130 */	{ .name = "ni_syscall" },		/* was sys_get_kernel_syms */
    220 +		{ .name = "quotactl" },
    221 +		{ .name = "getpgid" },
    222 +		{ .name = "fchdir" },
    223 +		{ .name = "bdflush" },
    224 +/* 135 */	{ .name = "sysfs" },
    225 +		{ .name = "personality" },
    226 +		{ .name = "ni_syscall" },		/* reserved for afs_syscall */
    227 +		{ .name = "setfsuid16" },
    228 +		{ .name = "setfsgid16" },
    229 +/* 140 */	{ .name = "llseek" },
    230 +		{ .name = "getdents" },
    231 +		{ .name = "select", .flags = AVOID_SYSCALL  },
    232 +		{ .name = "flock" },
    233 +		{ .name = "msync" },
    234 +/* 145 */	{ .name = "readv", .sanitise = sanitise_readv },
    235 +		{ .name = "writev", .sanitise = sanitise_writev },
    236 +		{ .name = "getsid" },
    237 +		{ .name = "fdatasync" },
    238 +		{ .name = "sysctl" },
    239 +/* 150 */	{ .name = "mlock" },
    240 +		{ .name = "munlock" },
    241 +		{ .name = "mlockall" },
    242 +		{ .name = "munlockall" },
    243 +		{ .name = "sched_setparam" },
    244 +/* 155 */	{ .name = "sched_getparam" },
    245 +		{ .name = "sched_setscheduler" },
    246 +		{ .name = "sched_getscheduler" },
    247 +		{ .name = "sched_yield" },
    248 +		{ .name = "sched_get_priority_max" },
    249 +/* 160 */	{ .name = "sched_get_priority_min" },
    250 +		{ .name = "sched_rr_get_interval" },
    251 +		{ .name = "nanosleep" },
    252 +		{ .name = "mremap", .sanitise = sanitise_mremap },
    253 +		{ .name = "setresuid16" },
    254 +/* 165 */	{ .name = "getresuid16" },
    255 +		{ .name = "ni_syscall" },		/* vm86 */
    256 +		{ .name = "ni_syscall" },		/* was sys_query_module */
    257 +		{ .name = "poll" },
    258 +		{ .name = "nfsservctl" },
    259 +/* 170 */	{ .name = "setresgid16" },
    260 +		{ .name = "getresgid16" },
    261 +		{ .name = "prctl" },
    262 +		{ .name = "rt_sigreturn_wrapper" },
    263 +		{ .name = "rt_sigaction", .sanitise = sanitise_rt_sigaction },
    264 +/* 175 */	{ .name = "rt_sigprocmask", .sanitise = sanitise_rt_sigprocmask },
    265 +		{ .name = "rt_sigpending" },
    266 +		{ .name = "rt_sigtimedwait" },
    267 +		{ .name = "rt_sigqueueinfo" },
    268 +		{ .name = "rt_sigsuspend", .flags = AVOID_SYSCALL },
    269 +/* 180 */	{ .name = "pread64", .sanitise = sanitise_pread64 },
    270 +		{ .name = "pwrite64", .sanitise = sanitise_pwrite64 },
    271 +		{ .name = "chown16" },
    272 +		{ .name = "getcwd" },
    273 +		{ .name = "capget" },
    274 +/* 185 */	{ .name = "capset" },
    275 +		{ .name = "sigaltstack_wrapper" },
    276 +		{ .name = "sendfile" },
    277 +		{ .name = "ni_syscall" },		/* getpmsg */
    278 +		{ .name = "ni_syscall" },		/* putpmsg */
    279 +/* 190 */	{ .name = "vfork_wrapper", .flags = AVOID_SYSCALL },
    280 +		{ .name = "getrlimit" },
    281 +		{ .name = "mmap2", .sanitise = sanitise_mmap },
    282 +		{ .name = "truncate64" },
    283 +		{ .name = "ftruncate64" },
    284 +  /* 195 */	{ .name = "stat64" },
    285 +		{ .name = "lstat64" },
    286 +		{ .name = "fstat64" },
    287 +		{ .name = "lchown" },
    288 +		{ .name = "getuid" },
    289 +/* 200 */	{ .name = "getgid" },
    290 +		{ .name = "geteuid" },
    291 +		{ .name = "getegid" },
    292 +		{ .name = "setreuid" },
    293 +		{ .name = "setregid" },
    294 +/* 205 */	{ .name = "getgroups" },
    295 +		{ .name = "setgroups" },
    296 +		{ .name = "fchown" },
    297 +		{ .name = "setresuid" },
    298 +		{ .name = "getresuid" },
    299 +/* 210 */	{ .name = "setresgid" },
    300 +		{ .name = "getresgid" },
    301 +		{ .name = "chown" },
    302 +		{ .name = "setuid" },
    303 +		{ .name = "setgid" },
    304 +/* 215 */	{ .name = "setfsuid" },
    305 +		{ .name = "setfsgid" },
    306 +		{ .name = "getdents64" },
    307 +		{ .name = "pivot_root", .flags = CAPABILITY_CHECK },
    308 +		{ .name = "mincore" },
    309 +/* 220 */	{ .name = "madvise" },
    310 +		{ .name = "fcntl64" },
    311 +		{ .name = "ni_syscall" }, /* TUX */
    312 +		{ .name = "ni_syscall" },
    313 +		{ .name = "gettid" },
    314 +/* 225 */	{ .name = "readahead" },
    315 +		{ .name = "setxattr" },
    316 +		{ .name = "lsetxattr" },
    317 +		{ .name = "fsetxattr" },
    318 +		{ .name = "getxattr" },
    319 +/* 230 */	{ .name = "lgetxattr" },
    320 +		{ .name = "fgetxattr" },
    321 +		{ .name = "listxattr" },
    322 +		{ .name = "llistxattr" },
    323 +		{ .name = "flistxattr" },
    324 +/* 235 */	{ .name = "removexattr" },
    325 +		{ .name = "lremovexattr" },
    326 +		{ .name = "fremovexattr" },
    327 +		{ .name = "tkill" },
    328 +		{ .name = "sendfile64" },
    329 +/* 240 */	{ .name = "futex" },
    330 +		{ .name = "sched_setaffinity" },
    331 +		{ .name = "sched_getaffinity" },
    332 +		{ .name = "io_setup" },
    333 +		{ .name = "io_destroy" },
    334 +/* 245 */	{ .name = "io_getevents" },
    335 +		{ .name = "io_submit" },
    336 +		{ .name = "io_cancel" },
    337 +		{ .name = "exit_group", .flags = AVOID_SYSCALL },
    338 +		{ .name = "lookup_dcookie", .flags = CAPABILITY_CHECK  },
    339 +/* 250 */	{ .name = "epoll_create" },
    340 +		{ .name = "epoll_ctl" },
    341 +		{ .name = "_epoll_wait" },
    342 +		{ .name = "remap_file_pages" },
    343 +		{ .name = "ni_syscall" },	/* sys_set_thread_area */
    344 +/* 255 */	{ .name = "ni_syscall" },	/* sys_get_thread_area */
    345 +		{ .name = "set_tid_address" },
    346 +		{ .name = "timer_create" },
    347 +		{ .name = "timer_settime" },
    348 +		{ .name = "timer_gettime" },
    349 +/* 260 */	{ .name = "timer_getoverrun" },
    350 +		{ .name = "timer_delete" },
    351 +		{ .name = "clock_settime" },
    352 +		{ .name = "clock_gettime" },
    353 +		{ .name = "clock_getres" },
    354 +/* 265 */	{ .name = "clock_nanosleep" },
    355 +		{ .name = "statfs64_wrapper" },
    356 +		{ .name = "fstatfs64_wrapper" },
    357 +		{ .name = "tgkill" },
    358 +		{ .name = "utimes" },
    359 +/* 270 */	{ .name = "arm_fadvise64_64" },
    360 +		{ .name = "pciconfig_iobase" },
    361 +		{ .name = "pciconfig_read" },
    362 +		{ .name = "pciconfig_write" },
    363 +		{ .name = "mq_open" },
    364 +/* 275 */	{ .name = "mq_unlink" },
    365 +		{ .name = "mq_timedsend" },
    366 +		{ .name = "mq_timedreceive" },
    367 +		{ .name = "mq_notify" },
    368 +		{ .name = "mq_getsetattr" },
    369 +/* 280 */	{ .name = "waitid" },
    370 +		{ .name = "socket" },
    371 +		{ .name = "bind" },
    372 +		{ .name = "connect" },
    373 +		{ .name = "listen" },
    374 +/* 285 */	{ .name = "accept" },
    375 +		{ .name = "getsockname" },
    376 +		{ .name = "getpeername" },
    377 +		{ .name = "socketpair" },
    378 +		{ .name = "send" },
    379 +/* 290 */	{ .name = "sendto" },
    380 +		{ .name = "recv" },
    381 +		{ .name = "recvfrom" },
    382 +		{ .name = "shutdown" },
    383 +		{ .name = "setsockopt" },
    384 +/* 295 */	{ .name = "getsockopt" },
    385 +		{ .name = "sendmsg" },
    386 +		{ .name = "recvmsg" },
    387 +		{ .name = "semop" },
    388 +		{ .name = "semget" },
    389 +/* 300 */	{ .name = "semctl" },
    390 +		{ .name = "msgsnd" },
    391 +		{ .name = "msgrcv" },
    392 +		{ .name = "msgget" },
    393 +		{ .name = "msgctl" },
    394 +/* 305 */	{ .name = "shmat" },
    395 +		{ .name = "shmdt" },
    396 +		{ .name = "shmget" },
    397 +		{ .name = "shmctl" },
    398 +		{ .name = "add_key" },
    399 +/* 310 */	{ .name = "request_key" },
    400 +		{ .name = "keyctl" },
    401 +		{ .name = "semtimedop", },
    402 +/* vserver */	{ .name = "ni_syscall" },
    403 +		{ .name = "ioprio_set" },
    404 +/* 315 */	{ .name = "ioprio_get" },
    405 +		{ .name = "inotify_init" },
    406 +		{ .name = "inotify_add_watch" },
    407 +		{ .name = "inotify_rm_watch" },
    408 +		{ .name = "mbind" },
    409 +/* 320 */	{ .name = "get_mempolicy" },
    410 +		{ .name = "set_mempolicy" },
    411 +		{ .name = "openat" },
    412 +		{ .name = "mkdirat" },
    413 +		{ .name = "mknodat" },
    414 +/* 325 */	{ .name = "fchownat" },
    415 +		{ .name = "futimesat" },
    416 +		{ .name = "fstatat64" },
    417 +		{ .name = "unlinkat" },
    418 +		{ .name = "renameat" },
    419 +/* 330 */	{ .name = "linkat" },
    420 +		{ .name = "symlinkat" },
    421 +		{ .name = "readlinkat" },
    422 +		{ .name = "fchmodat" },
    423 +		{ .name = "faccessat" },
    424 +/* 335 */	{ .name = "pselect6" },
    425 +		{ .name = "ppoll" },
    426 +		{ .name = "unshare" },
    427 +		{ .name = "set_robust_list", .sanitise = sanitise_set_robust_list },
    428 +		{ .name = "get_robust_list" },
    429 +/* 340 */	{ .name = "splice", .sanitise = sanitise_splice },
    430 +		{ .name = "sync_file_range2", .sanitise = sanitise_sync_file_range },
    431 +		{ .name = "tee", .sanitise = sanitise_tee },
    432 +		{ .name = "vmsplice", .sanitise = sanitise_vmsplice },
    433 +		{ .name = "move_pages" },
    434 +/* 345 */	{ .name = "getcpu" },
    435 +		{ .name = "epoll_pwait" },
    436 +		{ .name = "kexec_load" },
    437 +		{ .name = "utimensat" },
    438 +		{ .name = "signalfd" },
    439 +/* 350 */	{ .name = "timerfd_create" },
    440 +		{ .name = "eventfd" },
    441 +		{ .name = "fallocate" },
    442 +		{ .name = "timerfd_settime" },
    443 +		{ .name = "timerfd_gettime" },
    444 +/* 355 */	{ .name = "signalfd4" },
    445 +		{ .name = "eventfd2" },
    446 +		{ .name = "epoll_create1" },
    447 +		{ .name = "dup3" },
    448 +		{ .name = "pipe2" },
    449 +/* 360 */	{ .name = "inotify_init1" },
    450 +		{ .name = "preadv" },
    451 +		{ .name = "pwritev" },
    452 +		{ .name = "rt_tgsigqueueinfo" },
    453 +		{ .name = "perf_event_open" },
    454 +};
    455