Hello community,

here is the log from the commit of package trinity for openSUSE:Factory checked 
in at 2015-01-15 15:58:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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  2014-12-22 
12:52:56.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.trinity.new/trinity.changes     2015-01-15 
15:59:08.000000000 +0100
@@ -1,0 +2,5 @@
+Wed Jan 14 15:13:16 UTC 2015 - jsl...@suse.com
+
+- update to 20150107
+
+-------------------------------------------------------------------

Old:
----
  trinity-20141206.tar.xz

New:
----
  trinity-20150107.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ trinity.spec ++++++
--- /var/tmp/diff_new_pack.R3BNE7/_old  2015-01-15 15:59:09.000000000 +0100
+++ /var/tmp/diff_new_pack.R3BNE7/_new  2015-01-15 15:59:09.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package trinity
 #
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           trinity
-Version:        20141206
+Version:        20150107
 Release:        0
 Summary:        A Linux System call fuzz tester
 License:        GPL-2.0

++++++ trinity-20141206.tar.xz -> trinity-20150107.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trinity-20141206/Documentation/Known-bugs.txt 
new/trinity-20150107/Documentation/Known-bugs.txt
--- old/trinity-20141206/Documentation/Known-bugs.txt   2014-12-13 
14:38:01.000000000 +0100
+++ new/trinity-20150107/Documentation/Known-bugs.txt   2015-01-14 
16:12:54.000000000 +0100
@@ -1,3 +1,11 @@
+- render_arg occasionally scribbles past the end of the postbuffer.
+  This becomes more obvious when trinity is run with MALLOC_PERTURB_ set.
+
+- getrandom syscall can block, and the watchdog can't kill it.
+  Might need a ->sanitise routine to prevent blocking ops.
+
+- -c execve seems to always pass the same junk as args.
+
 - -r and -c don't seem to work together
 
 - when we randomly call personality, the child stops logging.
@@ -21,4 +29,3 @@
 - occasionally trinity fails to startup because we've leaked so much ipc stuff.
   cleanup on startup. (scripts/clean-ipc.sh in the meantime)
 
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trinity-20141206/Documentation/TODO 
new/trinity-20150107/Documentation/TODO
--- old/trinity-20141206/Documentation/TODO     2014-12-13 14:38:01.000000000 
+0100
+++ new/trinity-20150107/Documentation/TODO     2015-01-14 16:12:54.000000000 
+0100
@@ -4,30 +4,39 @@
     - do file ops on a bunch of trinity test files
     - open->read->close
     - open->mmap->access mem->close
-    - sysctl flipper.
+    - sysctl writes. (blacklist sysrq-trigger etc)
     - pick random elevator alg for all queues
-    - fork-and-dirty mappings 
+    - fork-and-dirty mappings
+    - send fd's over unix sockets to other children
+    - open/read all /proc/$$/* files
+    - tuned random syscalls. (open -> read -> close). tree of possibilities.
   - Ability to mark some ops as 'NEEDS_ROOT'.
   - Move the drop privs code from main to just before we start a new child.
 
-* maps.c improvements:
-  - Sometimes generate overlapping addresses/lengths when we have 
ARG_ADDRESS/ARG_ADDRESS2 pairs
-  - make sure ARG_ADDRESS only uses addresses from this list, and audit all 
other mmap/malloc uses
-    in sanitise routines.
-  - munge lengths when handing them out.
-  - mmap files
-    (we do this already, but don't track it properly)
-  - get_map_fragment()
-    - mprotect parts of a map 
-      will need to somehow track what pages are RO/RW etc 
-  - keep track of holes when munmap'd
-    split maps in two ?
-    (store original len, and current len)
+* vm related improvements:
+  - mmapping:
+    - Sometimes generate overlapping addresses/lengths when we have 
ARG_ADDRESS/ARG_ADDRESS2 pairs
+    - munge lengths when handing out maps.
+    - mmap files
+      (we do this already, but don't track it properly)
+    - get_map_fragment()
+    - keep track of holes when mprotect/munmap'd
+      split maps in two ?
+      (store original len, and current len)
+      note: initial maps are MAP_SHARED. What to do?
+    - mapping transaction log for dumping in post-mortem
+  - huge pages
+    - hugetlbfs mappings
+    - crib from hugetlbfs tests examples for more ideas.
+    - /dev/shm mappings
+  - pass memfd's in mmap sanitise
+  - sysv shm handling could be improved.
 
 * munge_process() on child startup
   - replace fork() with random clone()
   - run children in different namespaces, personalities.
   - unshare
+  - do some random fcntls to all fd's on child spawn
 
 * ioctl improvements
   - needs filename globbing for some ioctls
@@ -39,33 +48,41 @@
   - Make -D use a separate debug log file
   - if we have a large number of children, we use up a lot of fd's for
     the log files. Instead of keeping them all open, reopen them as needed.
+  - mprotect the child struct around write accesses
+  - improve debugf re: http://c-faq.com/varargs/handoff.html
+  - Activate the function tracer before each syscall. Flush before calling.
 
 * postmortem improvements
   - change child->syscall / ->previous to be a ringbuffer of syscallrecord 
structs.
   - Compare timestamp that taint was noticed at, ignore all later.
-
-* Do taint watching in the child loop too.
+  - log 'unfinished' if state isn't complete.
+  - is post mortem code generating ESC0m ?
+  - function that takes a void * and outputs what it is (mapping, page_* etc)
+    (searches various lists etc)
 
 * --dry-run mode.
    need to work around segv's when we do things like mmap->post and register 
null maps.
 
-* Rewrite the fd code.
+* fd handling improvements.
   - kill off NR_FILE_FDS
   - open some files in the child too after forking.
     - this requires a child-local fd mapping table.
       Maybe we can then reduce the size of the shared shm->file_fds
   - When requesting an fd, occasionally generate a new one.
-  - Could we do the nftw walks in parallel ?
-    That would speed up startup a lot.  Though would need to pass list back up 
to main thread somehow.
+  - parallelize nftw walks on startup using threads.
   - support for multiple victim file parameters
-  - When picking a random path, instead of treating the pool of paths as one 
thing,
+  - nftw of /lib/modules ? (for passing to init_module)
+    (if run as root)
+  - separate lists for dev sysfs etc
+    When picking a random path, instead of treating the pool of paths as one 
thing,
     treat it as multiple (/dev, /sys, /proc). And then do a 1-in-3 chance
     of getting one of those. Right now, because there are 5-6 digits worth of 
/proc & /sys,
     they dominate over the /dev entries.
   - more fd 'types' (fanotify_init)
-
-* Change regeneration code.
-  - Instead of every n syscalls, make it happen after 15 minutes (but with a 
minimum of n syscalls)
+  - need a way to go from fd to string describing what it is. for post-mortem
+  - Attach an operation history to each fd for post-mortem.
+    Maybe we need an fd container struct ?
+  - deregister fd providers if init of one fails
 
 * Pretty-print improvements.
  - decode fd number -> filename in output
@@ -76,6 +93,7 @@
 * Watchdog improvements
   - in main loop, check watchdog is still alive
   - RT watchdog task ?
+  - check if HI > total
 
 * filename related issues.
   - filename cache.
@@ -93,16 +111,34 @@
     - also need to watch /proc/$$/exe, look up using shm->pids.
   - file list struct extensions
     - use count
+  - create N testfiles for each -V
 
 * Networking improvements.
+  - More focus on non-ipv4 protocols.
+    - igmp
+    - ipv6 / 6to4
+    - sctp
+    - ipip
+    - tun (vxlan / gre)
+    - ppp
+    - pppoe
+    - tipc
+    - rds
+    - nfc
+    - nft
+    - iscsi
   - Rewrite socket generation.
     Organise into (sorted) per-protocol buckets of linked-lists..
     - Search buckets for dupes before adding.
   - for syscalls that take a fd and a sockaddr, look up the triplet and match.
   - Flesh out sockaddr/socket gen for all remaining protocols.
-  - setsockopt on network sockets when we regenerate
-    Disabled right now, because it causes some socket types to hang.
+  - setsockopt coverage is still lacking for some protocols.
+  - improve netlink fuzzing
   - specify an ip of a victim machine (Maybe also config file)
+  - --proto-exclude
+  - better spread of net protocols on startup
+  - check EAFNOSUPPORT if -P
+  - speed up PF_CAN creation
 
 * Improve the ->post routine to walk a list of objects that we allocated 
during a
    syscalls ->sanitise in a ->post method.
@@ -128,7 +164,9 @@
 
 * if a read() blocks and we get a kill from the watchdog, blacklist (close?) 
that fd/filename.
 
-* Some of the syscalls marked AVOID are done so for good reason.
+* Various syscall improvements.
+  - Create futexes on startup and make syscalls/futex.c use them.
+  - brk could be smarter about existing brk
   - Revisit fuzzing ptrace.
     - It's disabled currently because of situations like..
     child a traces child b
@@ -136,7 +174,7 @@
     child b never proceeds, and doesn't get untraced.
 
 * Further syscall annotation improvements
-  - Finish annotating syscall return types
+  - Finish annotating syscall return types & error codes.
 
 * structured logging.
   - To begin with, in parallel with existing text based logging.
@@ -159,17 +197,52 @@
     - To begin with, just allow replay/bisect using one child process.
       Synchronising threads across different runs may be complicated.
 
+* Misc improvements.
+  - implement _lock->queue so waiters get the lock on a FIFO basis.
+  - Add a NEEDS_ROOT flag for syscalls that are expected to fail.
+    (and then if !root, deactivate them on startup)
+  - --stats
+    - count segv's.
+  - avoid BORING syscalls. geteuid etc is kinda pointless.
+    (maybe an override param to call them)
+  - unix socket for comms between children/parent.
+    also other apps so we can do stats gathering, debug, config changes etc
+
 * Misc cleanups
   - Move arch specific syscalls into syscalls/arch/
   - Move addresses in get_interesting_value() to a function in per-arch 
headers.
+  - audit all uses of rand64 for 32bit builds
+  - possible helpers
+    - zfree (free & null)
+    - check_errno(EINVAL)
+      (checks if -1, and checks errno, returns bool)
+    - set_random_bits()
+  - fix up -q. trinity -h needs to be more silent
+  - add a kernel rodata addr to trinity (sys_call_table for eg)
 
 * watch dmesg buffer for interesting kernel messages and halt if necessary. 
Lockdep for eg.
   - Pause on oops.
     Sometimes we might want to read trinity state when we trigger a bad event.
 
 * Blocked child improvements.
-  - if we find a blocking fd, check if it's a socket, and shutdown() it. 
+  - 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 ?
+  - disappearing processes. 'oom killed maybe' when no oom.
+
+* pthreads. (Real long term, lots of work).
+  - allocate separate childdata for each thread, and pass into pthread_create
+  - allocate child->syscall.pre/post buffers too
+    (maybe just use reinit_child?)
+  - child_process takes ptr to childdata struct (just shm addr for processes)
+  - set_seed needs to factor in pthread number.
+  - locking needs to be pthread aware
+    put mutex in lock_t ?
+  - logging for threads?
+    will need a pthread watchdog in same process group
+  - send pthread_kill
+  - propagate progress up to main watchdog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trinity-20141206/fault-write.c 
new/trinity-20150107/fault-write.c
--- old/trinity-20141206/fault-write.c  2014-12-13 14:38:01.000000000 +0100
+++ new/trinity-20150107/fault-write.c  2015-01-14 16:12:54.000000000 +0100
@@ -103,9 +103,13 @@
                switch (rand() % 3) {
                case 0:
                        switch (rand() % 3) {
-                       case 0: p = sprintf(page, "%lu", (unsigned long) 
rand64());
-                               break;
-                       case 1: p = sprintf(page, "%ld", (unsigned long) 
rand64());
+                       case 0: p = sprintf(page, "%s%lu",
+                                       rand_bool() ? "-" : "",
+                                       (unsigned long) rand64());
+                               break;
+                       case 1: p = sprintf(page, "%s%ld",
+                                       rand_bool() ? "-" : "",
+                                       (unsigned long) rand64());
                                break;
                        case 2: p = sprintf(page, "%lx", (unsigned long) 
rand64());
                                break;
@@ -114,9 +118,13 @@
 
                case 1:
                        switch (rand() % 3) {
-                       case 0: p = sprintf(page, "%u", (unsigned int) 
rand32());
-                               break;
-                       case 1: p = sprintf(page, "%d", (int) rand32());
+                       case 0: p = sprintf(page, "%s%u",
+                                       rand_bool() ? "-" : "",
+                                       (unsigned int) rand32());
+                               break;
+                       case 1: p = sprintf(page, "%s%d",
+                                       rand_bool() ? "-" : "",
+                                       (int) rand32());
                                break;
                        case 2: p = sprintf(page, "%x", (int) rand32());
                                break;
@@ -125,9 +133,13 @@
 
                case 2:
                        switch (rand() % 3) {
-                       case 0: p = sprintf(page, "%u", (unsigned char) rand());
-                               break;
-                       case 1: p = sprintf(page, "%d", (char) rand());
+                       case 0: p = sprintf(page, "%s%u",
+                                       rand_bool() ? "-" : "",
+                                       (unsigned char) rand());
+                               break;
+                       case 1: p = sprintf(page, "%s%d",
+                                       rand_bool() ? "-" : "",
+                                       (char) rand());
                                break;
                        case 2: p = sprintf(page, "%x", (char) rand());
                                break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trinity-20141206/generate-args.c 
new/trinity-20150107/generate-args.c
--- old/trinity-20141206/generate-args.c        2014-12-13 14:38:01.000000000 
+0100
+++ new/trinity-20150107/generate-args.c        2015-01-14 16:12:54.000000000 
+0100
@@ -10,7 +10,6 @@
 #include "maps.h"
 #include "net.h"
 #include "random.h"
-#include "random.h"
 #include "sanitise.h"
 #include "shm.h"
 #include "syscall.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trinity-20141206/include/compat.h 
new/trinity-20150107/include/compat.h
--- old/trinity-20141206/include/compat.h       2014-12-13 14:38:01.000000000 
+0100
+++ new/trinity-20150107/include/compat.h       2015-01-14 16:12:54.000000000 
+0100
@@ -15,6 +15,9 @@
 #ifndef AT_EMPTY_PATH
 #define AT_EMPTY_PATH           0x1000
 #endif
+#ifndef AT_SYMLINK_NOFOLLOW
+#define AT_SYMLINK_NOFOLLOW    0x100
+#endif
 
 #ifndef O_PATH
 #define O_PATH        010000000 /* Resolve pathname but do not open file.  */
@@ -397,6 +400,10 @@
 #define SO_BPF_EXTENSIONS       48
 #endif
 
+#ifndef SO_INCOMING_CPU
+#define SO_INCOMING_CPU                49
+#endif
+
 /* linux/tcp.h */
 #ifndef TCP_COOKIE_TRANSACTIONS
 #define TCP_COOKIE_TRANSACTIONS        15
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trinity-20141206/include/syscalls-i386.h 
new/trinity-20150107/include/syscalls-i386.h
--- old/trinity-20141206/include/syscalls-i386.h        2014-12-13 
14:38:01.000000000 +0100
+++ new/trinity-20150107/include/syscalls-i386.h        2015-01-14 
16:12:54.000000000 +0100
@@ -1,6 +1,6 @@
 #pragma once
 
-/* Syscalls from arch/x86/syscalls/syscall_32.tbl as of 3.17+ */
+/* Syscalls from arch/x86/syscalls/syscall_32.tbl */
 
 #include "sanitise.h"
 #include "syscall.h"
@@ -365,4 +365,5 @@
        { .entry = &syscall_getrandom },
        { .entry = &syscall_memfd_create },
        { .entry = &syscall_bpf },
+       { .entry = &syscall_execveat },
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trinity-20141206/include/syscalls-ia64.h 
new/trinity-20150107/include/syscalls-ia64.h
--- old/trinity-20141206/include/syscalls-ia64.h        2014-12-13 
14:38:01.000000000 +0100
+++ new/trinity-20150107/include/syscalls-ia64.h        2015-01-14 
16:12:54.000000000 +0100
@@ -1,6 +1,6 @@
 #pragma once
 
-/* Syscalls from arch/ia64/kernel/entry.S as of 3.17+ */
+/* Syscalls from arch/ia64/kernel/entry.S */
 
 #include "sanitise.h"
 #include "syscall.h"
@@ -325,4 +325,5 @@
        { .entry = &syscall_getrandom },
        { .entry = &syscall_memfd_create },
        { .entry = &syscall_bpf },
+       { .entry = &syscall_execveat },
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trinity-20141206/include/syscalls-s390.h 
new/trinity-20150107/include/syscalls-s390.h
--- old/trinity-20141206/include/syscalls-s390.h        2014-12-13 
14:38:01.000000000 +0100
+++ new/trinity-20150107/include/syscalls-s390.h        2015-01-14 
16:12:54.000000000 +0100
@@ -359,4 +359,6 @@
        { .entry = &syscall_getrandom },
        { .entry = &syscall_memfd_create },
        { .entry = &syscall_bpf },
+       { .entry = &syscall_ni_syscall },       // TODO: 
syscall_s390_pci_mmio_write
+       { .entry = &syscall_ni_syscall },       // TODO: 
syscall_s390_pci_mmio_read
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trinity-20141206/include/syscalls-s390x.h 
new/trinity-20150107/include/syscalls-s390x.h
--- old/trinity-20141206/include/syscalls-s390x.h       2014-12-13 
14:38:01.000000000 +0100
+++ new/trinity-20150107/include/syscalls-s390x.h       2015-01-14 
16:12:54.000000000 +0100
@@ -359,4 +359,6 @@
        { .entry = &syscall_getrandom },
        { .entry = &syscall_memfd_create },
        { .entry = &syscall_bpf },
+       { .entry = &syscall_ni_syscall },       // TODO: 
syscall_s390_pci_mmio_write
+       { .entry = &syscall_ni_syscall },       // TODO: 
syscall_s390_pci_mmio_read
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trinity-20141206/include/syscalls-sparc.h 
new/trinity-20150107/include/syscalls-sparc.h
--- old/trinity-20141206/include/syscalls-sparc.h       2014-12-13 
14:38:01.000000000 +0100
+++ new/trinity-20150107/include/syscalls-sparc.h       2015-01-14 
16:12:54.000000000 +0100
@@ -357,4 +357,5 @@
        { .entry = &syscall_getrandom },
        { .entry = &syscall_memfd_create },
        { .entry = &syscall_bpf },
+       { .entry = &syscall_execveat },
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trinity-20141206/include/syscalls-x86_64.h 
new/trinity-20150107/include/syscalls-x86_64.h
--- old/trinity-20141206/include/syscalls-x86_64.h      2014-12-13 
14:38:01.000000000 +0100
+++ new/trinity-20150107/include/syscalls-x86_64.h      2015-01-14 
16:12:54.000000000 +0100
@@ -1,6 +1,6 @@
 #pragma once
 
-/* Syscalls from arch/x86/syscalls/syscall_64.tbl as of 3.17+ */
+/* Syscalls from arch/x86/syscalls/syscall_64.tbl */
 
 #include "sanitise.h"
 #include "syscall.h"
@@ -329,4 +329,5 @@
        { .entry = &syscall_memfd_create },
        { .entry = &syscall_kexec_file_load },
        { .entry = &syscall_bpf },
+       { .entry = &syscall_execveat },
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trinity-20141206/net/proto-socket.c 
new/trinity-20150107/net/proto-socket.c
--- old/trinity-20141206/net/proto-socket.c     2014-12-13 14:38:01.000000000 
+0100
+++ new/trinity-20150107/net/proto-socket.c     2015-01-14 16:12:54.000000000 
+0100
@@ -16,7 +16,7 @@
        SO_PASSSEC, SO_TIMESTAMPNS, SO_MARK, SO_TIMESTAMPING,
        SO_PROTOCOL, SO_DOMAIN, SO_RXQ_OVFL, SO_WIFI_STATUS,
        SO_PEEK_OFF, SO_NOFCS, SO_LOCK_FILTER, SO_SELECT_ERR_QUEUE,
-       SO_BUSY_POLL, SO_MAX_PACING_RATE, SO_BPF_EXTENSIONS };
+       SO_BUSY_POLL, SO_MAX_PACING_RATE, SO_BPF_EXTENSIONS, SO_INCOMING_CPU };
 
 void socket_setsockopt(struct sockopt *so)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trinity-20141206/params.c 
new/trinity-20150107/params.c
--- old/trinity-20141206/params.c       2014-12-13 14:38:01.000000000 +0100
+++ new/trinity-20150107/params.c       2015-01-14 16:12:54.000000000 +0100
@@ -140,19 +140,6 @@
                                outputstd("opt:%c\n", opt);
                        return;
 
-               case 'b':
-                       init_bdev_list();
-                       process_bdev_param(optarg);
-                       dump_bdev_list();
-                       outputstd("--bdev doesn't do anything useful yet.\n");
-                       exit(EXIT_SUCCESS);
-
-               case 'c':
-                       /* syscalls are all disabled at this point. enable the 
syscall we care about. */
-                       do_specific_syscall = TRUE;
-                       toggle_syscall(optarg, TRUE);
-                       break;
-
                case 'a':
                        /* One of the architectures selected*/
                        do_32_arch = FALSE;
@@ -169,6 +156,19 @@
                        }
                        break;
 
+               case 'b':
+                       init_bdev_list();
+                       process_bdev_param(optarg);
+                       dump_bdev_list();
+                       outputstd("--bdev doesn't do anything useful yet.\n");
+                       exit(EXIT_SUCCESS);
+
+               case 'c':
+                       /* syscalls are all disabled at this point. enable the 
syscall we care about. */
+                       do_specific_syscall = TRUE;
+                       toggle_syscall(optarg, TRUE);
+                       break;
+
                case 'C':
                        user_specified_children = strtoll(optarg, NULL, 10);
                        max_children = user_specified_children;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/trinity-20141206/patches/silence-fuzz-testing-noise.patch 
new/trinity-20150107/patches/silence-fuzz-testing-noise.patch
--- old/trinity-20141206/patches/silence-fuzz-testing-noise.patch       
2014-12-13 14:38:01.000000000 +0100
+++ new/trinity-20150107/patches/silence-fuzz-testing-noise.patch       
2015-01-14 16:12:54.000000000 +0100
@@ -1,23 +1,7 @@
-From 0267f449b83ad4a85acd3ca4d5386080dfc79c35 Mon Sep 17 00:00:00 2001
+From 2683419e05ab227cd24a5859db044fe3941d6574 Mon Sep 17 00:00:00 2001
 From: Dave Jones <da...@redhat.com>
 Date: Mon, 13 May 2013 16:53:02 -0400
-Subject: [PATCH 12/34] silence fuzz-testing noise
-
----
- arch/x86/ia32/sys_ia32.c        |  9 ---------
- arch/x86/kernel/vm86_32.c       |  9 +++------
- drivers/gpu/drm/drm_sysfs.c     |  2 --
- drivers/scsi/scsi_netlink.c     | 10 ++--------
- kernel/signal.c                 |  1 -
- net/appletalk/ddp.c             |  5 -----
- net/can/af_can.c                |  9 ---------
- net/core/sock.c                 |  7 -------
- net/irda/af_irda.c              |  6 ++----
- net/netfilter/ipvs/ip_vs_core.c |  2 --
- net/rds/bind.c                  |  2 --
- net/socket.c                    |  2 --
- sound/pci/hda/hda_codec.c       |  8 +++-----
- 13 files changed, 10 insertions(+), 62 deletions(-)
+Subject: [PATCH 11/44] silence fuzz-testing noise
 
 diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c
 index 8e0ceecdc957..e8071976793c 100644
@@ -65,10 +49,10 @@
        tss = &per_cpu(init_tss, get_cpu());
        current->thread.sp0 = current->thread.saved_sp0;
 diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
-index c22c3097c3e8..64a6372fca0c 100644
+index cc3d6d6d67e0..306b3a9189b9 100644
 --- a/drivers/gpu/drm/drm_sysfs.c
 +++ b/drivers/gpu/drm/drm_sysfs.c
-@@ -284,7 +284,6 @@ static ssize_t subconnector_show(struct device *device,
+@@ -285,7 +285,6 @@ static ssize_t subconnector_show(struct device *device,
        }
  
        if (!prop) {
@@ -76,7 +60,7 @@
                return 0;
        }
  
-@@ -325,7 +324,6 @@ static ssize_t select_subconnector_show(struct device 
*device,
+@@ -326,7 +325,6 @@ static ssize_t select_subconnector_show(struct device 
*device,
        }
  
        if (!prop) {
@@ -115,10 +99,10 @@
                /*
                 * Deliver message to the appropriate transport
 diff --git a/kernel/signal.c b/kernel/signal.c
-index 6ea13c09ae56..6dfb3b49ad7c 100644
+index 16a305295256..e1ebea3db6e7 100644
 --- a/kernel/signal.c
 +++ b/kernel/signal.c
-@@ -3057,7 +3057,6 @@ static int do_rt_tgsigqueueinfo(pid_t tgid, pid_t pid, 
int sig, siginfo_t *info)
+@@ -3044,7 +3044,6 @@ static int do_rt_tgsigqueueinfo(pid_t tgid, pid_t pid, 
int sig, siginfo_t *info)
        if (((info->si_code >= 0 || info->si_code == SI_TKILL)) &&
            (task_pid_vnr(current) != pid)) {
                /* We used to allow any < 0 si_code */
@@ -127,7 +111,7 @@
        }
        info->si_signo = sig;
 diff --git a/net/appletalk/ddp.c b/net/appletalk/ddp.c
-index 786ee2f83d5f..e6cc543afe59 100644
+index 0d0766ea5ab1..4362a4404078 100644
 --- a/net/appletalk/ddp.c
 +++ b/net/appletalk/ddp.c
 @@ -1204,12 +1204,7 @@ static int atalk_connect(struct socket *sock, struct 
sockaddr *uaddr,
@@ -144,10 +128,10 @@
  
        lock_sock(sk);
 diff --git a/net/can/af_can.c b/net/can/af_can.c
-index a27f8aad9e99..63b85afb1f5f 100644
+index 66e08040ced7..8cd31fd8ff8b 100644
 --- a/net/can/af_can.c
 +++ b/net/can/af_can.c
-@@ -157,15 +157,6 @@ static int can_create(struct net *net, struct socket 
*sock, int protocol,
+@@ -154,15 +154,6 @@ static int can_create(struct net *net, struct socket 
*sock, int protocol,
  
                err = request_module("can-proto-%d", protocol);
  
@@ -164,7 +148,7 @@
        }
  #endif
 diff --git a/net/core/sock.c b/net/core/sock.c
-index 87366a065687..a6c48a2e9f83 100644
+index 1c7a33db1314..b981f9108eb5 100644
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
 @@ -392,14 +392,7 @@ static int sock_set_timeout(long *timeo_p, char __user 
*optval, int optlen)
@@ -182,36 +166,49 @@
                return 0;
        }
        *timeo_p = MAX_SCHEDULE_TIMEOUT;
+diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
+index 0bb68df5055d..65772ffdde12 100644
+--- a/net/ipv4/raw.c
++++ b/net/ipv4/raw.c
+@@ -518,8 +518,6 @@ static int raw_sendmsg(struct kiocb *iocb, struct sock 
*sk, struct msghdr *msg,
+               if (msg->msg_namelen < sizeof(*usin))
+                       goto out;
+               if (usin->sin_family != AF_INET) {
+-                      pr_info_once("%s: %s forgot to set AF_INET. Fix it!\n",
+-                                   __func__, current->comm);
+                       err = -EAFNOSUPPORT;
+                       if (usin->sin_family)
+                               goto out;
 diff --git a/net/irda/af_irda.c b/net/irda/af_irda.c
-index 54747c25c86c..c8522dca57af 100644
+index 568edc72d737..fa19e6ef5ff3 100644
 --- a/net/irda/af_irda.c
 +++ b/net/irda/af_irda.c
-@@ -504,10 +504,8 @@ static int irda_open_lsap(struct irda_sock *self, int pid)
+@@ -494,10 +494,8 @@ static int irda_open_lsap(struct irda_sock *self, int pid)
  {
        notify_t notify;
  
 -      if (self->lsap) {
--              IRDA_WARNING("%s(), busy!\n", __func__);
+-              net_warn_ratelimited("%s(), busy!\n", __func__);
 +      if (self->lsap)
                return -EBUSY;
 -      }
  
        /* Initialize callbacks to be used by the IrDA stack */
        irda_notify_init(&notify);
-@@ -2130,7 +2128,7 @@ static int irda_setsockopt(struct socket *sock, int 
level, int optname,
-                                  __func__, opt);
+@@ -2105,8 +2103,6 @@ static int irda_setsockopt(struct socket *sock, int 
level, int optname,
+                                __func__, opt);
                        self->max_sdu_size_rx = opt;
                } else {
--                      IRDA_WARNING("%s: not allowed to set MAXSDUSIZE for 
this socket type!\n",
-+                      IRDA_DEBUG(2, "%s: not allowed to set MAXSDUSIZE for 
this socket type!\n",
-                                    __func__);
+-                      net_warn_ratelimited("%s: not allowed to set MAXSDUSIZE 
for this socket type!\n",
+-                                           __func__);
                        err = -ENOPROTOOPT;
                        goto out;
+               }
 diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
-index 4f26ee46b51f..5057562bc48d 100644
+index 990decba1fe4..ce9887ca8109 100644
 --- a/net/netfilter/ipvs/ip_vs_core.c
 +++ b/net/netfilter/ipvs/ip_vs_core.c
-@@ -1969,8 +1969,6 @@ static int __net_init __ip_vs_init(struct net *net)
+@@ -1975,8 +1975,6 @@ static int __net_init __ip_vs_init(struct net *net)
        if (ip_vs_sync_net_init(net) < 0)
                goto sync_fail;
  
@@ -233,11 +230,24 @@
                goto out;
        }
  
+diff --git a/net/sctp/socket.c b/net/sctp/socket.c
+index 2625eccb77d5..2678af5c129d 100644
+--- a/net/sctp/socket.c
++++ b/net/sctp/socket.c
+@@ -6312,8 +6312,6 @@ static int sctp_listen_start(struct sock *sk, int 
backlog)
+               sprintf(alg, "hmac(%s)", sp->sctp_hmac_alg);
+               tfm = crypto_alloc_hash(alg, 0, CRYPTO_ALG_ASYNC);
+               if (IS_ERR(tfm)) {
+-                      net_info_ratelimited("failed to load transform for %s: 
%ld\n",
+-                                           sp->sctp_hmac_alg, PTR_ERR(tfm));
+                       return -ENOSYS;
+               }
+               sctp_sk(sk)->hmac = tfm;
 diff --git a/net/socket.c b/net/socket.c
-index 1f02293cb011..661c38221da8 100644
+index a2c33a4dc7ba..326e4a9ebcd9 100644
 --- a/net/socket.c
 +++ b/net/socket.c
-@@ -2607,8 +2607,6 @@ int sock_register(const struct net_proto_family *ops)
+@@ -2592,8 +2592,6 @@ int sock_register(const struct net_proto_family *ops)
                err = 0;
        }
        spin_unlock(&net_family_lock);
@@ -246,11 +256,26 @@
        return err;
  }
  EXPORT_SYMBOL(sock_register);
+diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
+index 6da7532893a1..d4588654ee68 100644
+--- a/security/selinux/hooks.c
++++ b/security/selinux/hooks.c
+@@ -4723,10 +4723,6 @@ static int selinux_nlmsg_perm(struct sock *sk, struct 
sk_buff *skb)
+       err = selinux_nlmsg_lookup(sksec->sclass, nlh->nlmsg_type, &perm);
+       if (err) {
+               if (err == -EINVAL) {
+-                      printk(KERN_WARNING
+-                             "SELinux: unrecognized netlink message:"
+-                             " protocol=%hu nlmsg_type=%hu sclass=%hu\n",
+-                             sk->sk_protocol, nlh->nlmsg_type, sksec->sclass);
+                       if (!selinux_enforcing || security_get_allow_unknown())
+                               err = 0;
+               }
 diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
-index 4c20277a6835..324dee2eaef0 100644
+index 2fe86d2e1b09..7643b0e7c6da 100644
 --- a/sound/pci/hda/hda_codec.c
 +++ b/sound/pci/hda/hda_codec.c
-@@ -572,12 +572,10 @@ int snd_hda_get_raw_connections(struct hda_codec *codec, 
hda_nid_t nid,
+@@ -581,12 +581,10 @@ int snd_hda_get_raw_connections(struct hda_codec *codec, 
hda_nid_t nid,
                }
                range_val = !!(parm & (1 << (shift-1))); /* ranges */
                val = parm & mask;
@@ -266,44 +291,3 @@
                parm >>= shift;
                if (range_val) {
                        /* ranges between the previous and this one */
-diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
-index a9dbe58bdfe7..bd06a009f885 100644
---- a/net/ipv4/raw.c
-+++ b/net/ipv4/raw.c
-@@ -498,8 +498,6 @@ static int raw_sendmsg(struct kiocb *iocb, struct sock 
*sk, struct msghdr *msg,
-               if (msg->msg_namelen < sizeof(*usin))
-                       goto out;
-               if (usin->sin_family != AF_INET) {
--                      pr_info_once("%s: %s forgot to set AF_INET. Fix it!\n",
--                                   __func__, current->comm);
-                       err = -EAFNOSUPPORT;
-                       if (usin->sin_family)
-                               goto out;
-diff --git a/net/sctp/socket.c b/net/sctp/socket.c
-index a3fdfa90b0e8..935d0a66fffe 100644
---- a/net/sctp/socket.c
-+++ b/net/sctp/socket.c
-@@ -6088,8 +6088,6 @@ static int sctp_listen_start(struct sock *sk, int 
backlog)
-               sprintf(alg, "hmac(%s)", sp->sctp_hmac_alg);
-               tfm = crypto_alloc_hash(alg, 0, CRYPTO_ALG_ASYNC);
-               if (IS_ERR(tfm)) {
--                      net_info_ratelimited("failed to load transform for %s: 
%ld\n",
--                                           sp->sctp_hmac_alg, PTR_ERR(tfm));
-                       return -ENOSYS;
-               }
-               sctp_sk(sk)->hmac = tfm;
-diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
-index c603b20356ad..2ce54858002e 100644
---- a/security/selinux/hooks.c
-+++ b/security/selinux/hooks.c
-@@ -4725,10 +4725,6 @@ static int selinux_nlmsg_perm(struct sock *sk, struct 
sk_buff *skb)
-       err = selinux_nlmsg_lookup(sksec->sclass, nlh->nlmsg_type, &perm);
-       if (err) {
-               if (err == -EINVAL) {
--                      printk(KERN_WARNING
--                             "SELinux: unrecognized netlink message:"
--                             " protocol=%hu nlmsg_type=%hu sclass=%hu\n",
--                             sk->sk_protocol, nlh->nlmsg_type, sksec->sclass);
-                       if (!selinux_enforcing || security_get_allow_unknown())
-                               err = 0;
-               }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/trinity-20141206/patches/silence-noisy-deprecated-warnings-while-fuzzing.patch
 
new/trinity-20150107/patches/silence-noisy-deprecated-warnings-while-fuzzing.patch
--- 
old/trinity-20141206/patches/silence-noisy-deprecated-warnings-while-fuzzing.patch
  2014-12-13 14:38:01.000000000 +0100
+++ 
new/trinity-20150107/patches/silence-noisy-deprecated-warnings-while-fuzzing.patch
  2015-01-14 16:12:54.000000000 +0100
@@ -1,10 +1,13 @@
-silence noisy 'deprecated' warnings while fuzzing
+From b8bcb7a15ae1c4a878874dc25402c314734e5424 Mon Sep 17 00:00:00 2001
+From: Dave Jones <da...@redhat.com>
+Date: Mon, 13 May 2013 16:52:41 -0400
+Subject: [PATCH 10/44] silence noisy 'deprecated' warnings while fuzzing
 
 diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
-index 1236c6011c70..bab0a1916d8f 100644
+index d26973844a4d..bf34697d50c2 100644
 --- a/drivers/usb/core/sysfs.c
 +++ b/drivers/usb/core/sysfs.c
-@@ -400,13 +400,6 @@ static const char auto_string[] = "auto";
+@@ -392,13 +392,6 @@ static const char auto_string[] = "auto";
  
  static void warn_level(void)
  {
@@ -19,17 +22,16 @@
  
  static ssize_t level_show(struct device *dev, struct device_attribute *attr,
 diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
-index e19d4c0cacae..3bf259b16d53 100644
+index 5eba47f593f8..43b90af80006 100644
 --- a/fs/hugetlbfs/inode.c
 +++ b/fs/hugetlbfs/inode.c
-@@ -968,13 +968,7 @@ struct file *hugetlb_file_setup(const char *name, size_t 
size,
+@@ -966,12 +966,7 @@ struct file *hugetlb_file_setup(const char *name, size_t 
size,
  
        if (creat_flags == HUGETLB_SHMFS_INODE && !can_do_hugetlb_shm()) {
                *user = current_user();
 -              if (user_shm_lock(size, *user)) {
 -                      task_lock(current);
--                      printk_once(KERN_WARNING
--                              "%s (%d): Using mlock ulimits for SHM_HUGETLB 
is deprecated\n",
+-                      pr_warn_once("%s (%d): Using mlock ulimits for 
SHM_HUGETLB is deprecated\n",
 -                              current->comm, current->pid);
 -                      task_unlock(current);
 -              } else {
@@ -38,19 +40,20 @@
                        return ERR_PTR(-EPERM);
                }
 diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index 442177b1119a..ce743b0ca749 100644
+index 246eae84b13b..869945b9ceea 100644
 --- a/fs/proc/task_mmu.c
 +++ b/fs/proc/task_mmu.c
-@@ -807,8 +807,6 @@ static ssize_t clear_refs_write(struct file *file, const 
char __user *buf,
+@@ -843,9 +843,6 @@ static ssize_t clear_refs_write(struct file *file, const 
char __user *buf,
  
        if (type == CLEAR_REFS_SOFT_DIRTY) {
                soft_dirty_cleared = true;
--              pr_warn_once("The pagemap bits 55-60 has changed their meaning! 
"
--                              "See the linux/Documentation/vm/pagemap.txt for 
details.\n");
+-              pr_warn_once("The pagemap bits 55-60 has changed their meaning!"
+-                           " See the linux/Documentation/vm/pagemap.txt for "
+-                           "details.\n");
        }
  
        task = get_proc_task(file_inode(file));
-@@ -1227,9 +1225,6 @@ out:
+@@ -1322,9 +1319,6 @@ out:
  
  static int pagemap_open(struct inode *inode, struct file *file)
  {
@@ -83,10 +86,10 @@
        memset(&tmp, 0, sizeof(struct __old_kernel_stat));
        tmp.st_dev = old_encode_dev(stat->dev);
 diff --git a/kernel/sysctl_binary.c b/kernel/sysctl_binary.c
-index 653cbbd9e7ad..8338a2bbac33 100644
+index 7e7746a42a62..6fb00bbc5eb7 100644
 --- a/kernel/sysctl_binary.c
 +++ b/kernel/sysctl_binary.c
-@@ -1348,8 +1348,6 @@ static ssize_t binary_sysctl(const int *name, int nlen,
+@@ -1349,8 +1349,6 @@ static ssize_t binary_sysctl(const int *name, int nlen,
  
  static void deprecated_sysctl_warning(const int *name, int nlen)
  {
@@ -95,7 +98,7 @@
        /*
         * CTL_KERN/KERN_VERSION is used by older glibc and cannot
         * ever go away.
-@@ -1357,14 +1355,6 @@ static void deprecated_sysctl_warning(const int *name, 
int nlen)
+@@ -1358,14 +1356,6 @@ static void deprecated_sysctl_warning(const int *name, 
int nlen)
        if (name[0] == CTL_KERN && name[1] == KERN_VERSION)
                return;
  
@@ -111,10 +114,10 @@
  }
  
 diff --git a/mm/backing-dev.c b/mm/backing-dev.c
-index 09d9591b7708..0bc4491c642a 100644
+index 0ae0df55000b..f07e8eacafbd 100644
 --- a/mm/backing-dev.c
 +++ b/mm/backing-dev.c
-@@ -667,8 +667,6 @@ int pdflush_proc_obsolete(struct ctl_table *table, int 
write,
+@@ -659,8 +659,6 @@ int pdflush_proc_obsolete(struct ctl_table *table, int 
write,
  
        if (copy_to_user(buffer, kbuf, sizeof(kbuf)))
                return -EFAULT;
@@ -124,7 +127,7 @@
        *lenp = 2;
        *ppos += *lenp;
 diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
-index c35c3f48fc0f..3e605e64c797 100644
+index ca049a7c9287..5052e4cc0c10 100644
 --- a/net/ax25/af_ax25.c
 +++ b/net/ax25/af_ax25.c
 @@ -1209,9 +1209,6 @@ static int __must_check ax25_connect(struct socket *sock,
@@ -152,7 +155,7 @@
                                res = -EFAULT;
                                break;
 diff --git a/net/core/sock.c b/net/core/sock.c
-index 664ee4295b6f..87366a065687 100644
+index 1c7a33db1314..b9cfe362105e 100644
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
 @@ -412,14 +412,6 @@ static int sock_set_timeout(long *timeo_p, char __user 
*optval, int optlen)
@@ -171,10 +174,10 @@
  
  #define SK_FLAGS_TIMESTAMP ((1UL << SOCK_TIMESTAMP) | (1UL << 
SOCK_TIMESTAMPING_RX_SOFTWARE))
 diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c
-index 09a22f4f36c9..c9953e5a94b1 100644
+index 682866777d53..3e4b13e39560 100644
 --- a/net/ipv6/ndisc.c
 +++ b/net/ipv6/ndisc.c
-@@ -1632,16 +1632,6 @@ static struct notifier_block ndisc_netdev_notifier = {
+@@ -1669,16 +1669,6 @@ static struct notifier_block ndisc_netdev_notifier = {
  static void ndisc_warn_deprecated_sysctl(struct ctl_table *ctl,
                                         const char *func, const char *dev_name)
  {
@@ -192,7 +195,7 @@
  
  int ndisc_ifinfo_sysctl_change(struct ctl_table *ctl, int write, void __user 
*buffer, size_t *lenp, loff_t *ppos)
 diff --git a/net/netfilter/nf_conntrack_helper.c 
b/net/netfilter/nf_conntrack_helper.c
-index 5b3eae7d4c9a..7973a49ffdf9 100644
+index bd9d31537905..f2fdf02f0a94 100644
 --- a/net/netfilter/nf_conntrack_helper.c
 +++ b/net/netfilter/nf_conntrack_helper.c
 @@ -212,10 +212,6 @@ int __nf_ct_try_assign_helper(struct nf_conn *ct, struct 
nf_conn *tmpl,
@@ -207,10 +210,23 @@
                }
        }
 diff --git a/net/sctp/socket.c b/net/sctp/socket.c
-index fee06b99a4da..a3fdfa90b0e8 100644
+index 2625eccb77d5..22b42bac16b0 100644
 --- a/net/sctp/socket.c
 +++ b/net/sctp/socket.c
-@@ -3021,11 +3021,6 @@ static int sctp_setsockopt_maxseg(struct sock *sk, char 
__user *optval, unsigned
+@@ -2205,12 +2205,6 @@ static int sctp_setsockopt_events(struct sock *sk, char 
__user *optval,
+       if (copy_from_user(&sctp_sk(sk)->subscribe, optval, optlen))
+               return -EFAULT;
+ 
+-      if (sctp_sk(sk)->subscribe.sctp_data_io_event)
+-              pr_warn_ratelimited(DEPRECATED "%s (pid %d) "
+-                                  "Requested SCTP_SNDRCVINFO event.\n"
+-                                  "Use SCTP_RCVINFO through SCTP_RECVRCVINFO 
option instead.\n",
+-                                  current->comm, task_pid_nr(current));
+-
+       /* At the time when a user app subscribes to SCTP_SENDER_DRY_EVENT,
+        * if there is no data to be sent or retransmit, the stack will
+        * immediately send up this notification.
+@@ -3091,11 +3085,6 @@ static int sctp_setsockopt_maxseg(struct sock *sk, char 
__user *optval, unsigned
        int val;
  
        if (optlen == sizeof(int)) {
@@ -222,7 +238,7 @@
                if (copy_from_user(&val, optval, optlen))
                        return -EFAULT;
                params.assoc_id = 0;
-@@ -3282,11 +3277,6 @@ static int sctp_setsockopt_maxburst(struct sock *sk,
+@@ -3352,11 +3341,6 @@ static int sctp_setsockopt_maxburst(struct sock *sk,
        int assoc_id = 0;
  
        if (optlen == sizeof(int)) {
@@ -234,7 +250,7 @@
                if (copy_from_user(&val, optval, optlen))
                        return -EFAULT;
        } else if (optlen == sizeof(struct sctp_assoc_value)) {
-@@ -5252,11 +5242,6 @@ static int sctp_getsockopt_maxseg(struct sock *sk, int 
len,
+@@ -5405,11 +5389,6 @@ static int sctp_getsockopt_maxseg(struct sock *sk, int 
len,
        struct sctp_association *asoc;
  
        if (len == sizeof(int)) {
@@ -246,7 +262,7 @@
                params.assoc_id = 0;
        } else if (len >= sizeof(struct sctp_assoc_value)) {
                len = sizeof(struct sctp_assoc_value);
-@@ -5347,11 +5332,6 @@ static int sctp_getsockopt_maxburst(struct sock *sk, 
int len,
+@@ -5500,11 +5479,6 @@ static int sctp_getsockopt_maxburst(struct sock *sk, 
int len,
        struct sctp_association *asoc;
  
        if (len == sizeof(int)) {
@@ -259,10 +275,10 @@
        } else if (len >= sizeof(struct sctp_assoc_value)) {
                len = sizeof(struct sctp_assoc_value);
 diff --git a/net/socket.c b/net/socket.c
-index abf56b2a14f9..1f02293cb011 100644
+index a2c33a4dc7ba..77029279ace0 100644
 --- a/net/socket.c
 +++ b/net/socket.c
-@@ -1263,15 +1263,8 @@ int __sock_create(struct net *net, int family, int 
type, int protocol,
+@@ -1244,15 +1244,8 @@ int __sock_create(struct net *net, int family, int 
type, int protocol,
           This uglymoron is moved from INET layer to here to avoid
           deadlock in module load.
         */
@@ -279,20 +295,3 @@
  
        err = security_socket_create(family, type, protocol, kern);
        if (err)
-diff --git a/net/sctp/socket.c b/net/sctp/socket.c
-index 321697da2863..96b0f00f975d 100644
---- a/net/sctp/socket.c
-+++ b/net/sctp/socket.c
-@@ -2205,12 +2205,6 @@ static int sctp_setsockopt_events(struct sock *sk, char 
__user *optval,
-       if (copy_from_user(&sctp_sk(sk)->subscribe, optval, optlen))
-               return -EFAULT;
-
--      if (sctp_sk(sk)->subscribe.sctp_data_io_event)
--              pr_warn_ratelimited(DEPRECATED "%s (pid %d) "
--                                  "Requested SCTP_SNDRCVINFO event.\n"
--                                  "Use SCTP_RCVINFO through SCTP_RECVRCVINFO 
option instead.\n",
--                                  current->comm, task_pid_nr(current));
--
-       /* At the time when a user app subscribes to SCTP_SENDER_DRY_EVENT,
-        * if there is no data to be sent or retransmit, the stack will
-        * immediately send up this notification.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trinity-20141206/syscalls/execve.c 
new/trinity-20150107/syscalls/execve.c
--- old/trinity-20141206/syscalls/execve.c      2014-12-13 14:38:01.000000000 
+0100
+++ new/trinity-20150107/syscalls/execve.c      2015-01-14 16:12:54.000000000 
+0100
@@ -19,6 +19,7 @@
 #include "syscall.h"
 #include "trinity.h"   // __unused__
 #include "utils.h"
+#include "compat.h"
 
 static unsigned int argvcount;
 static unsigned int envpcount;
@@ -53,23 +54,45 @@
        rec->a3 = (unsigned long) gen_ptrs_to_crap(envpcount);
 }
 
+static void sanitise_execveat(struct syscallrecord *rec)
+{
+       /* we don't want to block if something tries to read from stdin */
+       fclose(stdin);
+
+       /* Fabricate argv */
+       argvcount = rand() % 32;
+       rec->a3 = (unsigned long) gen_ptrs_to_crap(argvcount);
+
+       /* Fabricate envp */
+       envpcount = rand() % 32;
+       rec->a4 = (unsigned long) gen_ptrs_to_crap(envpcount);
+}
+
 /* if execve succeeds, we'll never get back here, so this only
  * has to worry about the case where execve returned a failure.
  */
-static void post_execve(struct syscallrecord *rec)
+
+static void free_execve_ptrs(void **argv, void **envp)
 {
-       void **ptr;
        unsigned int i;
 
-       ptr = (void **) rec->a2;
        for (i = 0; i < argvcount; i++)
-               free(ptr[i]);
-       free(ptr);
+               free(argv[i]);
+       free(argv);
 
-       ptr = (void **) rec->a3;
        for (i = 0; i < envpcount; i++)
-               free(ptr[i]);
-       free(ptr);
+               free(envp[i]);
+       free(envp);
+}
+
+static void post_execve(struct syscallrecord *rec)
+{
+       free_execve_ptrs((void **) rec->a2, (void **) rec->a3);
+}
+
+static void post_execveat(struct syscallrecord *rec)
+{
+       free_execve_ptrs((void **) rec->a3, (void **) rec->a4);
 }
 
 struct syscallentry syscall_execve = {
@@ -86,6 +109,38 @@
        .group = GROUP_VFS,
        .flags = EXTRA_FORK,
        .errnos = {
+               .num = 17,
+               .values = {
+                       E2BIG, EACCES, EFAULT, EINVAL, EIO, EISDIR, ELIBBAD, 
ELOOP,
+                       EMFILE, ENOENT, ENOEXEC, ENOMEM, ENOTDIR, EPERM, 
ETXTBSY,
+                       /* currently undocumented in man page. */
+                       ENAMETOOLONG, ENXIO,
+               },
+       },
+};
+
+struct syscallentry syscall_execveat = {
+       .name = "execveat",
+       .num_args = 5,
+       .arg1name = "fd",
+       .arg1type = ARG_FD,
+       .arg2name = "name",
+       .arg2type = ARG_PATHNAME,
+       .arg3name = "argv",
+       .arg3type = ARG_ADDRESS,
+       .arg4name = "envp",
+       .arg4type = ARG_ADDRESS,
+       .arg5name = "flags",
+       .arg5type = ARG_LIST,
+       .arg5list = {
+               .num = 2,
+               .values = { AT_EMPTY_PATH, AT_SYMLINK_NOFOLLOW },
+       },
+       .sanitise = sanitise_execveat,
+       .post = post_execveat,
+       .group = GROUP_VFS,
+       .flags = EXTRA_FORK,
+       .errnos = {
                .num = 17,
                .values = {
                        E2BIG, EACCES, EFAULT, EINVAL, EIO, EISDIR, ELIBBAD, 
ELOOP,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trinity-20141206/syscalls/syscalls.h 
new/trinity-20150107/syscalls/syscalls.h
--- old/trinity-20141206/syscalls/syscalls.h    2014-12-13 14:38:01.000000000 
+0100
+++ new/trinity-20150107/syscalls/syscalls.h    2015-01-14 16:12:54.000000000 
+0100
@@ -375,5 +375,6 @@
 extern struct syscallentry syscall_memfd_create;
 extern struct syscallentry syscall_kexec_file_load;
 extern struct syscallentry syscall_bpf;
+extern struct syscallentry syscall_execveat;
 
 unsigned int random_fcntl_setfl_flags(void);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trinity-20141206/trinity.c 
new/trinity-20150107/trinity.c
--- old/trinity-20141206/trinity.c      2014-12-13 14:38:01.000000000 +0100
+++ new/trinity-20150107/trinity.c      2015-01-14 16:12:54.000000000 +0100
@@ -62,7 +62,7 @@
        pid_t pid;
        const char taskname[13]="trinity-main";
 
-       outputstd("Trinity " VERSION "  Dave Jones <da...@redhat.com>\n");
+       outputstd("Trinity " VERSION "  Dave Jones 
<da...@codemonkey.org.uk>\n");
 
        progname = argv[0];
 

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to