From 87cf98b2fbb62c4f145ae88e7c6b415c037c387d Mon Sep 17 00:00:00 2001 From: djm Date: Sun, 18 Jan 2015 19:50:55 +0000 Subject: [PATCH] better dumps from the fuzzer (shown on errors) - include the original data as well as the fuzzed copy. --- .../usr.bin/ssh/unittests/test_helper/fuzz.c | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/regress/usr.bin/ssh/unittests/test_helper/fuzz.c b/regress/usr.bin/ssh/unittests/test_helper/fuzz.c index b9a2fecace1..2003fbe504f 100644 --- a/regress/usr.bin/ssh/unittests/test_helper/fuzz.c +++ b/regress/usr.bin/ssh/unittests/test_helper/fuzz.c @@ -1,4 +1,4 @@ -/* $OpenBSD: fuzz.c,v 1.5 2015/01/13 14:51:51 djm Exp $ */ +/* $OpenBSD: fuzz.c,v 1.6 2015/01/18 19:50:55 djm Exp $ */ /* * Copyright (c) 2011 Damien Miller * @@ -150,19 +150,11 @@ fuzz_fmt(struct fuzz *fuzz, char *s, size_t n) } } -void -fuzz_dump(struct fuzz *fuzz) +static void +dump(u_char *p, size_t len) { - u_char *p = fuzz_ptr(fuzz); - size_t i, j, len = fuzz_len(fuzz); - char buf[256]; + size_t i, j; - if (fuzz_fmt(fuzz, buf, sizeof(buf)) != 0) { - fprintf(stderr, "%s: fuzz invalid\n", __func__); - abort(); - } - fputs(buf, stderr); - fprintf(stderr, "fuzz context %p len = %zu\n", fuzz, len); for (i = 0; i < len; i += 16) { fprintf(stderr, "%.4zd: ", i); for (j = i; j < i + 16; j++) { @@ -184,6 +176,22 @@ fuzz_dump(struct fuzz *fuzz) } } +void +fuzz_dump(struct fuzz *fuzz) +{ + char buf[256]; + + if (fuzz_fmt(fuzz, buf, sizeof(buf)) != 0) { + fprintf(stderr, "%s: fuzz invalid\n", __func__); + abort(); + } + fputs(buf, stderr); + fprintf(stderr, "fuzz original %p len = %zu\n", fuzz->seed, fuzz->slen); + dump(fuzz->seed, fuzz->slen); + fprintf(stderr, "fuzz context %p len = %zu\n", fuzz, fuzz_len(fuzz)); + dump(fuzz_ptr(fuzz), fuzz_len(fuzz)); +} + #ifdef SIGINFO static struct fuzz *last_fuzz; -- 2.20.1