Hello community, here is the log from the commit of package trinity for openSUSE:Factory checked in at 2017-08-16 16:15:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/trinity (Old) and /work/SRC/openSUSE:Factory/.trinity.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "trinity" Wed Aug 16 16:15:07 2017 rev:42 rq:516837 version:1.7+git.20170813 Changes: -------- --- /work/SRC/openSUSE:Factory/trinity/trinity.changes 2017-07-25 11:41:17.272789442 +0200 +++ /work/SRC/openSUSE:Factory/.trinity.new/trinity.changes 2017-08-16 16:15:23.407264461 +0200 @@ -1,0 +2,9 @@ +Mon Aug 14 13:34:40 UTC 2017 - [email protected] + +- Update to version 1.7+git.20170813: + * dump_pid_stack: fix uninitialised variable + * beginnings of TCP_ULP support. + * add tls header + * only Werror on gcc7+ + +------------------------------------------------------------------- Old: ---- trinity-1.7+git.20170712.tar.xz New: ---- trinity-1.7+git.20170813.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ trinity.spec ++++++ --- /var/tmp/diff_new_pack.dK7y8T/_old 2017-08-16 16:15:24.455117376 +0200 +++ /var/tmp/diff_new_pack.dK7y8T/_new 2017-08-16 16:15:24.467115691 +0200 @@ -16,9 +16,9 @@ # -%define version_unconverted 1.7+git.20170712 +%define version_unconverted 1.7+git.20170813 Name: trinity -Version: 1.7+git.20170712 +Version: 1.7+git.20170813 Release: 0 Summary: A Linux System call fuzz tester License: GPL-2.0 ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.dK7y8T/_old 2017-08-16 16:15:24.659088744 +0200 +++ /var/tmp/diff_new_pack.dK7y8T/_new 2017-08-16 16:15:24.671087060 +0200 @@ -1,4 +1,4 @@ <servicedata> <service name="tar_scm"> <param name="url">git://github.com/kernelslacker/trinity</param> - <param name="changesrevision">37ae2cceddb7e4cd055b2cf40ad25d57e00c4f80</param></service></servicedata> \ No newline at end of file + <param name="changesrevision">2ce77d8b298b883836867414fc5d71bf0ae0f548</param></service></servicedata> \ No newline at end of file ++++++ trinity-1.7+git.20170712.tar.xz -> trinity-1.7+git.20170813.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170712/Makefile new/trinity-1.7+git.20170813/Makefile --- old/trinity-1.7+git.20170712/Makefile 2017-07-12 23:06:12.000000000 +0200 +++ new/trinity-1.7+git.20170813/Makefile 2017-08-13 23:55:08.000000000 +0200 @@ -22,11 +22,11 @@ CCSTD := $(shell if $(CC) -std=gnu11 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-std=gnu11"; else echo "-std=gnu99"; fi) CFLAGS += $(CCSTD) -# -Werror only enabled during development, and on gcc 5.1+ +# -Werror only enabled during development, and on gcc 7+ ifeq ($(DEVEL), 1) CPP_MAJOR := $(shell $(CPP) -dumpversion 2>&1 | cut -d'.' -f1) CPP_MINOR := $(shell $(CPP) -dumpversion 2>&1 | cut -d'.' -f2) -WERROR := $(shell if [ $(CPP_MAJOR) -eq 5 -a $(CPP_MINOR) -ge 1 ] || [ $(CPP_MAJOR) -ge 6 ] ; then echo "-Werror"; else echo ""; fi) +WERROR := $(shell if [ $(CPP_MAJOR) -ge 7 ] ; then echo "-Werror"; else echo ""; fi) CFLAGS += $(WERROR) endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170712/include/compat.h new/trinity-1.7+git.20170813/include/compat.h --- old/trinity-1.7+git.20170712/include/compat.h 2017-07-12 23:06:12.000000000 +0200 +++ new/trinity-1.7+git.20170813/include/compat.h 2017-08-13 23:55:08.000000000 +0200 @@ -805,6 +805,10 @@ #define SOL_RFCOMM 18 #endif +#ifndef SOL_TLS +#define SOL_TLS 282 +#endif + /* net/bluetooth/hci.h */ #ifndef HCI_DATA_DIR #define HCI_DATA_DIR 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170712/include/tls.h new/trinity-1.7+git.20170813/include/tls.h --- old/trinity-1.7+git.20170712/include/tls.h 1970-01-01 01:00:00.000000000 +0100 +++ new/trinity-1.7+git.20170813/include/tls.h 2017-08-13 23:55:08.000000000 +0200 @@ -0,0 +1,32 @@ +#pragma once + +/* From linux/tls.h */ +struct tls_crypto_info { + unsigned short version; + unsigned short cipher_type; +}; + +#define TLS_CIPHER_AES_GCM_128_IV_SIZE 8 +#define TLS_CIPHER_AES_GCM_128_KEY_SIZE 16 +#define TLS_CIPHER_AES_GCM_128_SALT_SIZE 4 +#define TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE 8 + +#define TLS_VERSION_MINOR(ver) ((ver) & 0xFF) +#define TLS_VERSION_MAJOR(ver) (((ver) >> 8) & 0xFF) +#define TLS_VERSION_NUMBER(id) ((((id##_VERSION_MAJOR) & 0xFF) << 8) | \ + ((id##_VERSION_MINOR) & 0xFF)) +#define TLS_1_2_VERSION_MAJOR 0x3 +#define TLS_1_2_VERSION_MINOR 0x3 +#define TLS_1_2_VERSION TLS_VERSION_NUMBER(TLS_1_2) + +#define TLS_CIPHER_AES_GCM_128 51 + +#define TLS_TX 1 + +struct tls12_crypto_info_aes_gcm_128 { + struct tls_crypto_info info; + unsigned char iv[TLS_CIPHER_AES_GCM_128_IV_SIZE]; + unsigned char key[TLS_CIPHER_AES_GCM_128_KEY_SIZE]; + unsigned char salt[TLS_CIPHER_AES_GCM_128_SALT_SIZE]; + unsigned char rec_seq[TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE]; +}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170712/main.c new/trinity-1.7+git.20170813/main.c --- old/trinity-1.7+git.20170712/main.c 2017-07-12 23:06:12.000000000 +0200 +++ new/trinity-1.7+git.20170813/main.c 2017-08-13 23:55:08.000000000 +0200 @@ -260,7 +260,7 @@ while (!(feof(fp))) { size_t n = 0; - char *line; + char *line = NULL; if (getline(&line, &n, fp) != -1) { output(0, "pid %d stack: %s", pid, line); free(line); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170712/net/proto-ipv4.c new/trinity-1.7+git.20170813/net/proto-ipv4.c --- old/trinity-1.7+git.20170712/net/proto-ipv4.c 2017-07-12 23:06:12.000000000 +0200 +++ new/trinity-1.7+git.20170813/net/proto-ipv4.c 2017-08-13 23:55:08.000000000 +0200 @@ -20,6 +20,7 @@ #include "compat.h" #include "net.h" #include "random.h" +#include "tls.h" #include "uid.h" #include "utils.h" // ARRAY_SIZE @@ -319,14 +320,34 @@ ip_setsockopt(so, triplet); } +static void call_ulp_sso_ptr(struct sockopt *so) +{ + // For now, we only support TLS sockets. Extend if/when more ULPs appear. + + struct tls12_crypto_info_aes_gcm_128 *crypto_info; + + crypto_info = (struct tls12_crypto_info_aes_gcm_128 *) so->optval; + + crypto_info->info.version = TLS_1_2_VERSION; + crypto_info->info.cipher_type = TLS_CIPHER_AES_GCM_128; + + so->level = SOL_TLS; + so->optname = TLS_TX; + so->optlen = sizeof(struct tls12_crypto_info_aes_gcm_128); +} + static void inet_setsockopt(struct sockopt *so, struct socket_triplet *triplet) { so->level = SOL_IP; - if (RAND_BOOL()) - ip_setsockopt(so, triplet); - else - call_inet_sso_ptr(so, triplet); + switch (rnd() % 3) { + case 0: ip_setsockopt(so, triplet); + break; + case 1: call_inet_sso_ptr(so, triplet); + break; + case 2: call_ulp_sso_ptr(so); + break; + } } static struct socket_triplet ipv4_triplets[] = { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170712/net/proto-ipv6.c new/trinity-1.7+git.20170813/net/proto-ipv6.c --- old/trinity-1.7+git.20170712/net/proto-ipv6.c 2017-07-12 23:06:12.000000000 +0200 +++ new/trinity-1.7+git.20170813/net/proto-ipv6.c 2017-08-13 23:55:08.000000000 +0200 @@ -1,4 +1,3 @@ - #ifdef USE_IPV6 #include <sys/types.h> #include <sys/socket.h> @@ -16,6 +15,7 @@ #include "arch.h" #include "net.h" #include "random.h" +#include "tls.h" #include "utils.h" // ARRAY_SIZE #include "uid.h" #include "compat.h" @@ -162,7 +162,7 @@ { .name = IPV6_RECVFRAGSIZE, }, }; -static void inet6_setsockopt(struct sockopt *so, __unused__ struct socket_triplet *triplet) +static void __inet6_setsockopt(struct sockopt *so) { unsigned char val; @@ -191,7 +191,29 @@ case IPV6_XFRM_POLICY: so->optlen = rnd() % page_size; break; + } +} + +static void inet6_ulp_setsockopt(struct sockopt *so) +{ + // For now, we only support TLS sockets. Extend if/when more ULPs appear. + struct tls12_crypto_info_aes_gcm_128 *crypto_info; + crypto_info = (struct tls12_crypto_info_aes_gcm_128 *) so->optval; + crypto_info->info.version = TLS_1_2_VERSION; + crypto_info->info.cipher_type = TLS_CIPHER_AES_GCM_128; + + so->level = SOL_TLS; + so->optname = TLS_TX; + so->optlen = sizeof(struct tls12_crypto_info_aes_gcm_128); +} + +static void inet6_setsockopt(struct sockopt *so, __unused__ struct socket_triplet *triplet) +{ + if (RAND_BOOL()) { + __inet6_setsockopt(so); + } else { + inet6_ulp_setsockopt(so); } }
