From d8b0de2df3c9646b9b4d160f1ea6b678381d23be Mon Sep 17 00:00:00 2001 From: Alexander Potapenko Date: Tue, 8 Aug 2017 16:50:22 +0200 Subject: prog: reduce the "uber-mmap" size During minimization we create a single memory mapping that contains all the smaller mmap() ranges, so that other mmap() calls can be dropped. This "uber-mmap" used to start at 0x7f0000000000 regardless of where the smaller mappings were located. Change its starting address to the beginning of the first small mmap() range. --- prog/mutation.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'prog/mutation.go') diff --git a/prog/mutation.go b/prog/mutation.go index 98e7e567d..853e7141d 100644 --- a/prog/mutation.go +++ b/prog/mutation.go @@ -270,9 +270,13 @@ func Minimize(p0 *Prog, callIndex0 int, pred func(*Prog, int) bool, crash bool) // Try to glue all mmap's together. s := analyze(nil, p0, nil) hi := -1 + lo := -1 for i := 0; i < maxPages; i++ { if s.pages[i] { hi = i + if lo == -1 { + lo = i + } } } if hi != -1 { @@ -290,7 +294,7 @@ func Minimize(p0 *Prog, callIndex0 int, pred func(*Prog, int) bool, crash bool) } } // Prepend uber-mmap. - mmap := createMmapCall(0, uintptr(hi)+1) + mmap := createMmapCall(uintptr(lo), uintptr(hi-lo)+1) p.Calls = append([]*Call{mmap}, p.Calls...) if callIndex != -1 { callIndex++ -- cgit mrf-deployment