summaryrefslogtreecommitdiff
path: root/regress
diff options
context:
space:
mode:
authorDamien Miller <djm@cvs.openbsd.org>2015-01-18 19:50:56 +0000
committerDamien Miller <djm@cvs.openbsd.org>2015-01-18 19:50:56 +0000
commit32bfff0e1845cc66004a22e3f55e1d2fdf72706d (patch)
tree9f61bf19698b4f96a9956aa95fc1b88043996b68 /regress
parent44bdddfb3956eee35ab4849f030d9f3dcc3a7ea7 (diff)
better dumps from the fuzzer (shown on errors) - include the
original data as well as the fuzzed copy.
Diffstat (limited to 'regress')
-rw-r--r--regress/usr.bin/ssh/unittests/test_helper/fuzz.c32
1 files 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 <djm@mindrot.org>
*
@@ -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;