mirror of
https://github.com/reactos/syzkaller.git
synced 2025-02-17 10:10:08 +00:00
prog: mutate fixed-size strings more
Allow removing/inserting ranges of bytes from fixed-size strings, provided we truncate/extend resulting string to keep original size.
This commit is contained in:
parent
6fb8a0255e
commit
598eb19243
@ -415,7 +415,7 @@ var mutateDataFuncs = [...]func(r *randGen, data []byte, minLen, maxLen uint64)
|
||||
},
|
||||
// Insert random bytes.
|
||||
func(r *randGen, data []byte, minLen, maxLen uint64) ([]byte, bool) {
|
||||
if len(data) == 0 || uint64(len(data)) >= maxLen {
|
||||
if len(data) == 0 {
|
||||
return data, false
|
||||
}
|
||||
n := r.Intn(16) + 1
|
||||
@ -430,14 +430,14 @@ var mutateDataFuncs = [...]func(r *randGen, data []byte, minLen, maxLen uint64)
|
||||
for i := 0; i < n; i++ {
|
||||
data[pos+i] = byte(r.Int31())
|
||||
}
|
||||
if r.bin() {
|
||||
if uint64(len(data)) > maxLen || r.bin() {
|
||||
data = data[:len(data)-n] // preserve original length
|
||||
}
|
||||
return data, true
|
||||
},
|
||||
// Remove bytes.
|
||||
func(r *randGen, data []byte, minLen, maxLen uint64) ([]byte, bool) {
|
||||
if uint64(len(data)) <= minLen {
|
||||
if len(data) == 0 {
|
||||
return data, false
|
||||
}
|
||||
n := r.Intn(16) + 1
|
||||
@ -450,7 +450,7 @@ var mutateDataFuncs = [...]func(r *randGen, data []byte, minLen, maxLen uint64)
|
||||
}
|
||||
copy(data[pos:], data[pos+n:])
|
||||
data = data[:len(data)-n]
|
||||
if r.bin() {
|
||||
if uint64(len(data)) < minLen || r.bin() {
|
||||
for i := 0; i < n; i++ {
|
||||
data = append(data, 0) // preserve original length
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user