diff options
author | van Hauser <vh@thc.org> | 2020-05-29 14:35:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-29 14:35:05 +0200 |
commit | 710dda522186310a7fb4e3b6a05cae0b28fa619e (patch) | |
tree | f96fcfe756fe5e6e0dde11be8df8b3df9f654952 /src/afl-as.c | |
parent | 6892018142cc21ba9a0744c0757d39f21e9b66bc (diff) | |
parent | c3b864d8d4dfaf148158a689df0c5ddf4bcc1f32 (diff) | |
download | afl++-710dda522186310a7fb4e3b6a05cae0b28fa619e.tar.gz |
Merge pull request #374 from AFLplusplus/dev
Dev
Diffstat (limited to 'src/afl-as.c')
-rw-r--r-- | src/afl-as.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/afl-as.c b/src/afl-as.c index 4809a731..f16d6060 100644 --- a/src/afl-as.c +++ b/src/afl-as.c @@ -232,8 +232,8 @@ static void edit_params(int argc, char **argv) { } - modified_file = - alloc_printf("%s/.afl-%u-%u.s", tmp_dir, (u32)getpid(), (u32)time(NULL)); + modified_file = alloc_printf("%s/.afl-%u-%u-%u.s", tmp_dir, (u32)getpid(), + (u32)time(NULL), (u32)random()); wrap_things_up: @@ -531,7 +531,7 @@ static void add_instrumentation(void) { int main(int argc, char **argv) { s32 pid; - u32 rand_seed; + u32 rand_seed, i, j; int status; u8 *inst_ratio_str = getenv("AFL_INST_RATIO"); @@ -590,6 +590,10 @@ int main(int argc, char **argv) { gettimeofday(&tv, &tz); rand_seed = tv.tv_sec ^ tv.tv_usec ^ getpid(); + // in fast systems where pids can repeat in the same seconds we need this + for (i = 1; i < argc; i++) + for (j = 0; j < strlen(argv[i]); j++) + rand_seed += argv[i][j]; srandom(rand_seed); |