From b3742339325c5255c4d028bbe38491007818891d Mon Sep 17 00:00:00 2001 From: matthew <> Date: Wed, 9 Jul 2014 23:54:00 +0000 Subject: Add some extra sanity checks to make sure the test functions actually run on altstack. --- src/regress/lib/libc/explicit_bzero/explicit_bzero.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/regress/lib/libc/explicit_bzero/explicit_bzero.c') diff --git a/src/regress/lib/libc/explicit_bzero/explicit_bzero.c b/src/regress/lib/libc/explicit_bzero/explicit_bzero.c index 658d2f1e51..d1e4d1494e 100644 --- a/src/regress/lib/libc/explicit_bzero/explicit_bzero.c +++ b/src/regress/lib/libc/explicit_bzero/explicit_bzero.c @@ -1,4 +1,4 @@ -/* $OpenBSD: explicit_bzero.c,v 1.3 2014/07/09 18:02:24 matthew Exp $ */ +/* $OpenBSD: explicit_bzero.c,v 1.4 2014/07/09 23:54:00 matthew Exp $ */ /* * Copyright (c) 2014 Google Inc. * @@ -38,6 +38,14 @@ setup_stack(void) ASSERT_EQ(0, sigaltstack(&sigstk, NULL)); } +static void +assert_on_stack(void) +{ + stack_t cursigstk; + ASSERT_EQ(0, sigaltstack(NULL, &cursigstk)); + ASSERT_EQ(SS_ONSTACK, cursigstk.ss_flags & (SS_DISABLE|SS_ONSTACK)); +} + static void call_on_stack(void (*fn)(int)) { @@ -106,14 +114,18 @@ static void test_without_bzero(int signo) { char buf[SECRETBYTES]; + assert_on_stack(); populate_secret(buf, sizeof(buf)); + ASSERT_NE(NULL, memmem(altstack, sizeof(altstack), buf, sizeof(buf))); } static void test_with_bzero(int signo) { char buf[SECRETBYTES]; + assert_on_stack(); populate_secret(buf, sizeof(buf)); + ASSERT_NE(NULL, memmem(altstack, sizeof(altstack), buf, sizeof(buf))); explicit_bzero(buf, sizeof(buf)); } -- cgit v1.2.3-55-g6feb