Hello community, here is the log from the commit of package trinity for openSUSE:Factory checked in at 2015-11-04 15:33:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/trinity (Old) and /work/SRC/openSUSE:Factory/.trinity.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "trinity" Changes: -------- --- /work/SRC/openSUSE:Factory/trinity/trinity.changes 2015-09-19 06:55:39.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.trinity.new/trinity.changes 2015-11-04 15:33:36.000000000 +0100 @@ -1,0 +2,5 @@ +Mon Nov 2 12:27:25 UTC 2015 - [email protected] + +- Update to 20151029 + +------------------------------------------------------------------- Old: ---- trinity-20150905.tar.xz New: ---- trinity-20151029.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ trinity.spec ++++++ --- /var/tmp/diff_new_pack.C9mM1s/_old 2015-11-04 15:33:37.000000000 +0100 +++ /var/tmp/diff_new_pack.C9mM1s/_new 2015-11-04 15:33:37.000000000 +0100 @@ -17,7 +17,7 @@ Name: trinity -Version: 20150905 +Version: 20151029 Release: 0 Summary: A Linux System call fuzz tester License: GPL-2.0 ++++++ trinity-20150905.tar.xz -> trinity-20151029.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150905/Documentation/TODO new/trinity-20151029/Documentation/TODO --- old/trinity-20150905/Documentation/TODO 2015-09-17 16:21:20.000000000 +0200 +++ new/trinity-20151029/Documentation/TODO 2015-11-02 13:25:05.000000000 +0100 @@ -228,7 +228,6 @@ - if we find a blocking fd, check if it's a socket, and shutdown() it. (tricky: we need to do the shutdown in the main process, and then tell other children) -* make -p take an arg for seconds * things to check. - execve occasionally returns -ESRCH. Why ? diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150905/children/random-syscalls.c new/trinity-20151029/children/random-syscalls.c --- old/trinity-20150905/children/random-syscalls.c 2015-09-17 16:21:20.000000000 +0200 +++ new/trinity-20151029/children/random-syscalls.c 2015-11-02 13:25:05.000000000 +0100 @@ -12,7 +12,6 @@ #include "debug.h" #include "locks.h" #include "log.h" -#include "params.h" // dopause #include "pids.h" #include "random.h" #include "shm.h" @@ -129,10 +128,6 @@ */ len = strlen(rec->prebuffer); - /* If we're going to pause, might as well sync pre-syscall */ - if (dopause == TRUE) - synclogs(); - old = rec->tv.tv_sec; do_syscall(rec); @@ -172,9 +167,6 @@ /* Output the syscall result, and clean up */ output_syscall_postfix(rec); - if (dopause == TRUE) - sleep(1); - handle_syscall_ret(rec); return TRUE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150905/include/fd.h new/trinity-20151029/include/fd.h --- old/trinity-20150905/include/fd.h 2015-09-17 16:21:20.000000000 +0200 +++ new/trinity-20151029/include/fd.h 2015-11-02 13:25:05.000000000 +0100 @@ -1,6 +1,8 @@ #pragma once +#include "child.h" #include "list.h" +#include "syscall.h" #include "types.h" void setup_fd_providers(void); @@ -16,3 +18,5 @@ int (*get)(void); bool enabled; }; + +unsigned int check_if_fd(struct childdata *child, struct syscallrecord *rec); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150905/include/params.h new/trinity-20151029/include/params.h --- old/trinity-20150905/include/params.h 2015-09-17 16:21:20.000000000 +0200 +++ new/trinity-20151029/include/params.h 2015-11-02 13:25:05.000000000 +0100 @@ -31,7 +31,7 @@ extern bool do_specific_domain; extern char *specific_domain_optarg; extern bool no_domains[TRINITY_PF_MAX]; -extern bool dopause; +extern bool dry_run; extern bool show_syscall_list; extern bool show_ioctl_list; extern unsigned char quiet_level; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150905/include/trinity.h new/trinity-20151029/include/trinity.h --- old/trinity-20150905/include/trinity.h 2015-09-17 16:21:20.000000000 +0200 +++ new/trinity-20151029/include/trinity.h 2015-11-02 13:25:05.000000000 +0100 @@ -1,7 +1,6 @@ #pragma once -#include "child.h" -#include "syscall.h" +#include "types.h" extern unsigned int num_online_cpus; extern bool no_bind_to_cpu; @@ -12,7 +11,6 @@ void exit_main_fail(void); void init_watchdog(void); -unsigned int check_if_fd(struct childdata *child, struct syscallrecord *rec); void panic(int reason); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150905/params.c new/trinity-20151029/params.c --- old/trinity-20150905/params.c 2015-09-17 16:21:20.000000000 +0200 +++ new/trinity-20151029/params.c 2015-11-02 13:25:05.000000000 +0100 @@ -31,7 +31,7 @@ bool do_specific_domain = FALSE; bool no_domains[TRINITY_PF_MAX]; -bool dopause = FALSE; +bool dry_run = FALSE; bool show_syscall_list = FALSE; bool show_ioctl_list = FALSE; unsigned char quiet_level = 0; @@ -92,12 +92,11 @@ outputerr("\n"); outputerr(" -c#,@: target specific syscall (takes syscall name as parameter and optionally 32 or 64 as bit-width. Default:both).\n"); outputerr(" -N#: do # syscalls then exit.\n"); - outputerr(" -p: pause after syscall.\n"); outputerr(" -s#: use # as random seed.\n"); exit(EXIT_SUCCESS); } -static const char paramstr[] = "a:b:c:C:dDE:g:hIl:LmN:P:pqr:s:ST:V:vx:X"; +static const char paramstr[] = "a:b:c:C:dDE:g:hIl:LmN:P:qr:s:ST:V:vx:X"; static const struct option longopts[] = { { "arch", required_argument, NULL, 'a' }, @@ -107,6 +106,7 @@ { "dropprivs", no_argument, NULL, 'X'}, { "debug", no_argument, NULL, 'D' }, { "disable-fds", required_argument, NULL, 0 }, + { "dry-run", no_argument, NULL, 0 }, { "enable-fds", required_argument, NULL, 0 }, { "exclude", required_argument, NULL, 'x' }, { "group", required_argument, NULL, 'g' }, @@ -234,11 +234,6 @@ syscalls_todo = strtoll(optarg, NULL, 10); break; - /* Pause after each syscall */ - case 'p': - dopause = TRUE; - break; - case 'P': do_specific_domain = TRUE; specific_domain = strtol(optarg, NULL, 10); @@ -323,6 +318,9 @@ if (strcmp("enable-fds", longopts[opt_index].name) == 0) process_fds_param(optarg, TRUE); + if (strcmp("dry-run", longopts[opt_index].name) == 0) + dry_run = TRUE; + break; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150905/syscall.c new/trinity-20151029/syscall.c --- old/trinity-20150905/syscall.c 2015-09-17 16:21:20.000000000 +0200 +++ new/trinity-20151029/syscall.c 2015-11-02 13:25:05.000000000 +0100 @@ -12,6 +12,7 @@ #include "arch.h" #include "child.h" +#include "params.h" #include "pids.h" #include "random.h" #include "sanitise.h" @@ -100,12 +101,14 @@ errno = 0; - shm_ro(); - if (rec->do32bit == FALSE) - ret = syscall(call, rec->a1, rec->a2, rec->a3, rec->a4, rec->a5, rec->a6); - else - ret = syscall32(call, rec->a1, rec->a2, rec->a3, rec->a4, rec->a5, rec->a6); - shm_rw(); + if (dry_run == FALSE) { + shm_ro(); + if (rec->do32bit == FALSE) + ret = syscall(call, rec->a1, rec->a2, rec->a3, rec->a4, rec->a5, rec->a6); + else + ret = syscall32(call, rec->a1, rec->a2, rec->a3, rec->a4, rec->a5, rec->a6); + shm_rw(); + } /* We returned! */ shm->stats.total_syscalls_done++; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150905/syscalls/request_key.c new/trinity-20151029/syscalls/request_key.c --- old/trinity-20150905/syscalls/request_key.c 2015-09-17 16:21:20.000000000 +0200 +++ new/trinity-20151029/syscalls/request_key.c 2015-11-02 13:25:05.000000000 +0100 @@ -4,6 +4,7 @@ const char __user *, _callout_info, key_serial_t, destringid) */ +#include <linux/keyctl.h> #include "sanitise.h" struct syscallentry syscall_request_key = { @@ -16,4 +17,14 @@ .arg3name = "_callout_info", .arg3type = ARG_ADDRESS, .arg4name = "destringid", + .arg4type = ARG_OP, + .arg4list = { + .num = 8, + .values = { + KEY_SPEC_THREAD_KEYRING, KEY_SPEC_PROCESS_KEYRING, + KEY_SPEC_SESSION_KEYRING, KEY_SPEC_USER_KEYRING, + KEY_SPEC_USER_SESSION_KEYRING, KEY_SPEC_GROUP_KEYRING, + KEY_SPEC_REQKEY_AUTH_KEY, KEY_SPEC_REQUESTOR_KEYRING, + }, + }, };
