Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Jul 2017 10:22:13 +0000 (UTC)
From:      Peter Holm <pho@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r320767 - user/pho/stress2/misc
Message-ID:  <201707071022.v67AMDjW038942@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pho
Date: Fri Jul  7 10:22:13 2017
New Revision: 320767
URL: https://svnweb.freebsd.org/changeset/base/320767

Log:
  Added new regression tests.
  
  Sponsored by:	Dell EMC Isilon

Added:
  user/pho/stress2/misc/mmap30.sh   (contents, props changed)
  user/pho/stress2/misc/ruby.sh   (contents, props changed)
  user/pho/stress2/misc/stack_guard_page.sh   (contents, props changed)

Added: user/pho/stress2/misc/mmap30.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/pho/stress2/misc/mmap30.sh	Fri Jul  7 10:22:13 2017	(r320767)
@@ -0,0 +1,79 @@
+#!/bin/sh
+
+#
+# Copyright (c) 2017 Dell EMC Isilon
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+# $FreeBSD$
+#
+
+# r320344: allow mprotect(2) over the guards to succeed regardless of
+# the requested protection.
+
+. ../default.cfg
+
+grep -q MAP_GUARD /usr/include/sys/mman.h 2>/dev/null || exit 0
+here=`pwd`
+cd /tmp
+sed '1,/^EOF/d' < $here/$0 > mmap30.c
+mycc -o mmap30 -Wall -Wextra -O2 -g mmap30.c || exit 1
+rm -f mmap30.c /tmp/mmap30.core
+
+/tmp/mmap30 > /dev/null
+s=$?
+
+rm -f /tmp/mmap30 /tmp/mmap30.core
+exit $s
+EOF
+#include <sys/types.h>
+#include <sys/mman.h>
+
+#include <err.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+int
+main(void)
+{
+	int pagesz;
+	void *addr;
+
+	pagesz = getpagesize();
+	addr = mmap(NULL, pagesz, PROT_NONE, MAP_GUARD, -1, 0);
+	if (addr == (char *)MAP_FAILED)
+		err(1, "FAIL: mmap(MAP_GUARD)");
+
+	if (mprotect(addr, pagesz, PROT_READ | PROT_WRITE) == -1)
+		err(1, "mprotect(RW)");
+
+	if (mprotect(addr, pagesz, PROT_NONE) == -1)
+		err(1, "mprotect(RW)");
+
+	if (munmap(addr, pagesz) == -1)
+		err(1, "munmap");
+
+	return (0);
+}

Added: user/pho/stress2/misc/ruby.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/pho/stress2/misc/ruby.sh	Fri Jul  7 10:22:13 2017	(r320767)
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+#
+# Copyright (c) 2017 Dell EMC Isilon
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+# $FreeBSD$
+#
+
+# "small MAP_STACK requests" scenario.
+
+# "<main>: warning: pthread_create failed for timer: Resource temporarily
+# unavailable, scheduling broken" seen.
+# Fixed by r320339.
+
+[ -x "`which ruby`" ] || exit 0
+
+ruby -v 2>&1 | tee $log | grep warning && s=1 || s=0
+exit $s

Added: user/pho/stress2/misc/stack_guard_page.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/pho/stress2/misc/stack_guard_page.sh	Fri Jul  7 10:22:13 2017	(r320767)
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+#
+# Copyright (c) 2017 Dell EMC Isilon
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+# $FreeBSD$
+#
+
+# Setting a negative guard page size will cause "Abort trap"
+# Reported by Shawn Webb <shawn.webb@hardenedbsd.org>
+# Fixed in r320560.
+
+[ `sysctl -n security.bsd.stack_guard_page` -eq 0 ] && exit 0
+
+old=`sysctl -n security.bsd.stack_guard_page`
+trap "sysctl security.bsd.stack_guard_page=$old" EXIT INT
+
+../misc/marcus.sh > /dev/null 2>&1 &
+
+start=`date +%s`
+while [ $((`date +%s` - start)) -lt 60 ]; do
+	sysctl security.bsd.stack_guard_page=`jot -r 1 -1 512` > \
+	    /dev/null 2>&1
+	sleep 1
+done
+kill $!
+../tools/killall.sh
+./cleanup.sh
+wait
+
+exit 0



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201707071022.v67AMDjW038942>