Hello community,

here is the log from the commit of package afl for openSUSE:Factory checked in 
at 2015-03-30 19:33:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/afl (Old)
 and      /work/SRC/openSUSE:Factory/.afl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "afl"

Changes:
--------
--- /work/SRC/openSUSE:Factory/afl/afl.changes  2015-03-25 21:32:49.000000000 
+0100
+++ /work/SRC/openSUSE:Factory/.afl.new/afl.changes     2015-03-30 
19:33:18.000000000 +0200
@@ -1,0 +2,15 @@
+Fri Mar 27 20:26:35 UTC 2015 - astie...@suse.com
+
+- fix SLE 11 SP3 build, add afl-1.58b-fix-paths.patch
+
+-------------------------------------------------------------------
+Fri Mar 27 14:40:09 UTC 2015 - astie...@suse.com
+
+- afl 1.58b:
+  * Added a workaround for abort() behavior in -lpthread programs in
+    QEMU mode.
+  * Made several documentation updates, including links to the
+    static instrumentation tool (sister_projects.txt).
+- use libexecdir
+
+-------------------------------------------------------------------

Old:
----
  afl-1.57b.tgz

New:
----
  afl-1.58b-fix-paths.patch
  afl-1.58b.tgz

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

Other differences:
------------------
++++++ afl.spec ++++++
--- /var/tmp/diff_new_pack.VS4I7U/_old  2015-03-30 19:33:18.000000000 +0200
+++ /var/tmp/diff_new_pack.VS4I7U/_new  2015-03-30 19:33:18.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           afl
-Version:        1.57b
+Version:        1.58b
 Release:        0
 Summary:        American fuzzy lop is a security-oriented fuzzer
 License:        Apache-2.0
@@ -26,6 +26,7 @@
 Source:         http://lcamtuf.coredump.cx/afl/releases/%{name}-%{version}.tgz
 Source1:       afl-rpmlintrc
 Patch0:         afl-1.46b-nodate.patch
+Patch1:         afl-1.58b-fix-paths.patch
 BuildRequires:  gcc-c++
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
@@ -37,24 +38,24 @@
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 %build
 export CFLAGS="$CFLAGS %{optflags}"
-make %{?_smp_mflags}
+make PREFIX=%{_prefix} LIBEXEC_DIR=%{_libexecdir} DOC_DIR=%{_docdir} 
%{?_smp_mflags}
 
 %install
-export PREFIX=%{_prefix}
-make DESTDIR=%{buildroot} install %{?_smp_mflags}
-rm -rf %{buildroot}%{_datadir}/doc/%{name}
+make PREFIX=%{_prefix} LIBEXEC_DIR=%{_libexecdir} DOC_DIR=%{_docdir} 
DESTDIR=%{buildroot} install %{?_smp_mflags}
 
 %files
 %defattr(-,root,root)
+%doc docs/COPYING
 %{_bindir}/%{name}-*
-%dir /usr/lib/%{name}
-/usr/lib/%{name}/%{name}-as
-/usr/lib/%{name}/as
+%dir %{_libexecdir}/%{name}
+%{_libexecdir}/%{name}/%{name}-as
+%{_libexecdir}/%{name}/as
 %dir %{_datadir}/%{name}
 %dir %{_datadir}/%{name}/testcases
 %{_datadir}/%{name}/testcases/*
-%doc docs/COPYING docs/README docs/ChangeLog docs/*.txt docs/visualization 
docs/vuln_samples
 
+%changelog

++++++ afl-1.58b-fix-paths.patch ++++++
---
 Makefile |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Index: afl-1.58b/Makefile
===================================================================
--- afl-1.58b.orig/Makefile     2015-03-27 07:47:58.000000000 +0100
+++ afl-1.58b/Makefile  2015-03-27 21:14:10.000000000 +0100
@@ -18,8 +18,8 @@ VERSION     = 1.58b
 
 PREFIX     ?= /usr/local
 BIN_PATH    = $(PREFIX)/bin
-HELPER_PATH = $(PREFIX)/lib/afl
-DOC_PATH    = $(PREFIX)/share/doc/afl
+HELPER_PATH = $(LIBEXEC_DIR)/afl
+DOC_PATH    = $(DOC_DIR)/afl
 MISC_PATH   = $(PREFIX)/share/afl
 
 PROGS       = afl-gcc afl-as afl-fuzz afl-showmap afl-tmin afl-gotcpu
++++++ afl-1.57b.tgz -> afl-1.58b.tgz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.57b/Makefile new/afl-1.58b/Makefile
--- old/afl-1.57b/Makefile      2015-03-18 08:24:38.000000000 +0100
+++ new/afl-1.58b/Makefile      2015-03-27 07:47:58.000000000 +0100
@@ -14,7 +14,7 @@
 #
 
 PROGNAME    = afl
-VERSION     = 1.57b
+VERSION     = 1.58b
 
 PREFIX     ?= /usr/local
 BIN_PATH    = $(PREFIX)/bin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.57b/docs/ChangeLog new/afl-1.58b/docs/ChangeLog
--- old/afl-1.57b/docs/ChangeLog        2015-03-18 08:28:39.000000000 +0100
+++ new/afl-1.58b/docs/ChangeLog        2015-03-27 07:48:35.000000000 +0100
@@ -17,6 +17,16 @@
 to get on with the times.
 
 --------------
+Version 1.58b:
+--------------
+
+  - Added a workaround for abort() behavior in -lpthread programs in QEMU mode.
+    Spotted by Aidan Thornton.
+
+  - Made several documentation updates, including links to the static
+    instrumentation tool (sister_projects.txt).
+
+--------------
 Version 1.57b:
 --------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.57b/docs/README new/afl-1.58b/docs/README
--- old/afl-1.57b/docs/README   2015-03-18 08:25:01.000000000 +0100
+++ new/afl-1.58b/docs/README   2015-03-27 07:42:42.000000000 +0100
@@ -417,6 +417,8 @@
   Andrew Griffiths                      Parker Thompson
   Jonathan Neuschfer                    Tyler Nighswander
   Ben Nagy                              Samir Aguiar
+  Aidan Thornton                        Aleksandar Nikolich
+  Sam Hakim
 
 Thank you!
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.57b/docs/perf_tips.txt 
new/afl-1.58b/docs/perf_tips.txt
--- old/afl-1.57b/docs/perf_tips.txt    2015-02-21 08:34:36.000000000 +0100
+++ new/afl-1.58b/docs/perf_tips.txt    2015-03-23 03:00:43.000000000 +0100
@@ -76,7 +76,8 @@
 config file, or disabling some compile-time features that aren't really needed
 for the job (try ./configure --help). One of the notoriously resource-consuming
 things would be calling other utilities via exec*(), popen(), system(), or
-equivalent calls.
+equivalent calls. Some programs may intentionally call sleep(), usleep(), or
+nanosleep(), etc.
 
 Last but not least, if you are using ASAN and the performance is unacceptable,
 consider turning it off for now, and manually examining the generated corpus
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.57b/docs/sister_projects.txt 
new/afl-1.58b/docs/sister_projects.txt
--- old/afl-1.57b/docs/sister_projects.txt      2015-03-18 04:58:23.000000000 
+0100
+++ new/afl-1.58b/docs/sister_projects.txt      2015-03-27 07:47:04.000000000 
+0100
@@ -28,6 +28,16 @@
 
   https://github.com/bnagy/aflfix
 
+Static binary-only instrumentation (Aleksandar Nikolich)
+--------------------------------------------------------
+
+  Allows black-box binaries to be instrumented statically (i.e., by modifying
+  the binary ahead of the time, rather than translating it on the run). Author
+  reports better performance compared to QEMU, but occassional translation
+  errors with stripped binaries.
+
+  https://github.com/vrtadmin/moflow/tree/master/afl-dyninst
+
 Python AFL (Jakub Wilk)
 -----------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.57b/docs/vuln_samples/sqlite-bad-ptr.sql 
new/afl-1.58b/docs/vuln_samples/sqlite-bad-ptr.sql
--- old/afl-1.57b/docs/vuln_samples/sqlite-bad-ptr.sql  1970-01-01 
01:00:00.000000000 +0100
+++ new/afl-1.58b/docs/vuln_samples/sqlite-bad-ptr.sql  2015-03-20 
21:37:51.000000000 +0100
@@ -0,0 +1 @@
+SELECT 0 UNION SELECT 0 ORDER BY 1 COLLATE"""""""";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.57b/docs/vuln_samples/sqlite-null-ptr10.sql 
new/afl-1.58b/docs/vuln_samples/sqlite-null-ptr10.sql
--- old/afl-1.57b/docs/vuln_samples/sqlite-null-ptr10.sql       1970-01-01 
01:00:00.000000000 +0100
+++ new/afl-1.58b/docs/vuln_samples/sqlite-null-ptr10.sql       2015-03-21 
20:06:30.000000000 +0100
@@ -0,0 +1 @@
+SELECT fts3_tokenizer(@0());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.57b/docs/vuln_samples/sqlite-null-ptr11.sql 
new/afl-1.58b/docs/vuln_samples/sqlite-null-ptr11.sql
--- old/afl-1.57b/docs/vuln_samples/sqlite-null-ptr11.sql       1970-01-01 
01:00:00.000000000 +0100
+++ new/afl-1.58b/docs/vuln_samples/sqlite-null-ptr11.sql       2015-03-22 
04:34:27.000000000 +0100
@@ -0,0 +1 @@
+select''like''like''like#0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.57b/docs/vuln_samples/sqlite-null-ptr6.sql 
new/afl-1.58b/docs/vuln_samples/sqlite-null-ptr6.sql
--- old/afl-1.57b/docs/vuln_samples/sqlite-null-ptr6.sql        1970-01-01 
01:00:00.000000000 +0100
+++ new/afl-1.58b/docs/vuln_samples/sqlite-null-ptr6.sql        2015-03-20 
21:38:02.000000000 +0100
@@ -0,0 +1 @@
+PRAGMA encoding='UTF16';CREATE VIRTUAL TABLE � USING s;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.57b/docs/vuln_samples/sqlite-null-ptr7.sql 
new/afl-1.58b/docs/vuln_samples/sqlite-null-ptr7.sql
--- old/afl-1.57b/docs/vuln_samples/sqlite-null-ptr7.sql        1970-01-01 
01:00:00.000000000 +0100
+++ new/afl-1.58b/docs/vuln_samples/sqlite-null-ptr7.sql        2015-03-20 
21:38:24.000000000 +0100
@@ -0,0 +1 @@
+CREATE VIRTUAL TABLE t USING fts4(tokenize=);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.57b/docs/vuln_samples/sqlite-null-ptr8.sql 
new/afl-1.58b/docs/vuln_samples/sqlite-null-ptr8.sql
--- old/afl-1.57b/docs/vuln_samples/sqlite-null-ptr8.sql        1970-01-01 
01:00:00.000000000 +0100
+++ new/afl-1.58b/docs/vuln_samples/sqlite-null-ptr8.sql        2015-03-21 
04:24:24.000000000 +0100
@@ -0,0 +1 @@
+CREATE TABLE p(a UNIQUE,PRIMARY KEY('a'))WITHOUT rowid;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.57b/docs/vuln_samples/sqlite-null-ptr9.sql 
new/afl-1.58b/docs/vuln_samples/sqlite-null-ptr9.sql
--- old/afl-1.57b/docs/vuln_samples/sqlite-null-ptr9.sql        1970-01-01 
01:00:00.000000000 +0100
+++ new/afl-1.58b/docs/vuln_samples/sqlite-null-ptr9.sql        2015-03-21 
04:24:39.000000000 +0100
@@ -0,0 +1 @@
+CREATE TABLE t0(z);WITH d(x)AS(SELECT*UNION SELECT 0)INSERT INTO t0 SELECT 0 
FROM d;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.57b/docs/vuln_samples/sqlite-unint-mem.sql 
new/afl-1.58b/docs/vuln_samples/sqlite-unint-mem.sql
--- old/afl-1.57b/docs/vuln_samples/sqlite-unint-mem.sql        1970-01-01 
01:00:00.000000000 +0100
+++ new/afl-1.58b/docs/vuln_samples/sqlite-unint-mem.sql        2015-03-20 
21:54:52.000000000 +0100
@@ -0,0 +1 @@
+REATE VIRTUAL TABLE t0 USING fts4(prefix=0);INSERT INTO t0 VALUES(0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.57b/qemu_mode/README.qemu 
new/afl-1.58b/qemu_mode/README.qemu
--- old/afl-1.57b/qemu_mode/README.qemu 2015-03-03 06:22:51.000000000 +0100
+++ new/afl-1.58b/qemu_mode/README.qemu 2015-03-27 08:07:21.000000000 +0100
@@ -96,3 +96,22 @@
 Beyond that, this is an early-stage mechanism, so fields reports - even just
 "yeah, it worked for me" - are very much welcome. You can always drop a mail to
 <afl-us...@googlegroups.com>.
+
+6) Alternatives: static rewriting
+---------------------------------
+
+Statically rewriting binaries just once, instead of attempting to translate
+them at run time, can be a faster alternative - but it is fraught with peril,
+because it depends on being able to properly model program control flow without
+actually running it.
+
+There is a module attempting just this, contributed by Aleksandar Nikolich:
+
+  https://github.com/vrtadmin/moflow/tree/master/afl-dyninst
+  https://groups.google.com/forum/#!topic/afl-users/HlSQdbOTlpg
+
+At this point, the author reports the possibility of hiccups with stripped
+binaries. That said, if we can get it to be comparably reliable to QEMU, we may
+decide to switch to this mode!
+
+Once again, field reports are very welcome.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.57b/qemu_mode/build_qemu_support.sh 
new/afl-1.58b/qemu_mode/build_qemu_support.sh
--- old/afl-1.57b/qemu_mode/build_qemu_support.sh       2015-02-02 
09:12:55.000000000 +0100
+++ new/afl-1.58b/qemu_mode/build_qemu_support.sh       2015-03-27 
07:47:49.000000000 +0100
@@ -112,6 +112,7 @@
 patch -p0 <patches/elfload.diff || exit 1
 patch -p0 <patches/cpu-exec.diff || exit 1
 patch -p0 <patches/translate-all.diff || exit 1
+patch -p0 <patches/syscall.diff || exit 1
 
 echo "[+] Patching done."
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.57b/qemu_mode/patches/afl-qemu-cpu-inl.h 
new/afl-1.58b/qemu_mode/patches/afl-qemu-cpu-inl.h
--- old/afl-1.57b/qemu_mode/patches/afl-qemu-cpu-inl.h  2015-02-02 
22:14:12.000000000 +0100
+++ new/afl-1.58b/qemu_mode/patches/afl-qemu-cpu-inl.h  2015-03-27 
07:53:46.000000000 +0100
@@ -69,9 +69,10 @@
           afl_start_code,  /* .text start pointer      */
           afl_end_code;    /* .text end pointer        */
 
-/* Set on the child in forkserver mode: */
+/* Set in the child process in forkserver mode: */
 
 static unsigned char afl_fork_child;
+unsigned int afl_forksrv_pid;
 
 /* Instrumentation ratio: */
 
@@ -158,6 +159,8 @@
 
   if (write(FORKSRV_FD + 1, tmp, 4) != 4) return;
 
+  afl_forksrv_pid = getpid();
+
   /* All right, let's await orders... */
 
   while (1) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/afl-1.57b/qemu_mode/patches/syscall.diff 
new/afl-1.58b/qemu_mode/patches/syscall.diff
--- old/afl-1.57b/qemu_mode/patches/syscall.diff        1970-01-01 
01:00:00.000000000 +0100
+++ new/afl-1.58b/qemu_mode/patches/syscall.diff        2015-03-27 
07:39:50.000000000 +0100
@@ -0,0 +1,25 @@
+--- qemu-2.2.0/linux-user/syscall.c.orig       2014-12-09 14:45:43.000000000 
+0000
++++ qemu-2.2.0/linux-user/syscall.c    2015-03-27 06:33:00.736000000 +0000
+@@ -227,7 +227,21 @@
+ _syscall3(int,sys_rt_sigqueueinfo,int,pid,int,sig,siginfo_t *,uinfo)
+ _syscall3(int,sys_syslog,int,type,char*,bufp,int,len)
+ #if defined(TARGET_NR_tgkill) && defined(__NR_tgkill)
+-_syscall3(int,sys_tgkill,int,tgid,int,pid,int,sig)
++
++extern unsigned int afl_forksrv_pid;
++
++static int sys_tgkill(int tgid, int pid, int sig) {
++
++  /* Workaround for -lpthread to make abort() work properly, without
++     killing the forkserver due to a prematurely cached PID. */
++
++  if (afl_forksrv_pid && afl_forksrv_pid == pid && sig == SIGABRT)
++    pid = tgid = getpid();
++
++  return syscall(__NR_sys_tgkill, pid, tgid, sig);
++
++}
++
+ #endif
+ #if defined(TARGET_NR_tkill) && defined(__NR_tkill)
+ _syscall2(int,sys_tkill,int,tid,int,sig)


Reply via email to