1#! /usr/bin/ksh 2# 3# 4# This file and its contents are supplied under the terms of the 5# Common Development and Distribution License ("CDDL"), version 1.0. 6# You may only use this file in accordance with the terms of version 7# 1.0 of the CDDL. 8# 9# A full copy of the text of the CDDL should have accompanied this 10# source. A copy of the CDDL is also available via the Internet at 11# http://www.illumos.org/license/CDDL. 12# 13 14# 15# Copyright 2015, Richard Lowe. 16# 17 18mkdir /tmp/secflags-test.$$ 19cd /tmp/secflags-test.$$ 20 21/usr/bin/psecflags -s aslr -e sleep 100000 & 22pid=$! 23coreadm -p core $pid # We need to be able to reliably find the core 24 25cleanup() { 26 kill $pid >/dev/null 2>&1 27 cd / 28 rm -fr /tmp/secflags-test.$$ 29} 30 31trap cleanup EXIT 32 33## gcore-produced core 34gcore $pid >/dev/null 35 36cat > gcore-expected.$$ <<EOF 37core 'core.$pid' of $pid: sleep 100000 38 E: aslr 39 I: aslr 40EOF 41 42/usr/bin/psecflags core.${pid} | grep -v '[LU]:' > gcore-output.$$ 43 44if ! diff -u gcore-expected.$$ gcore-output.$$; then 45 exit 1; 46fi 47 48## kernel-produced core 49kill -SEGV $pid 50wait $pid >/dev/null 2>&1 51 52cat > core-expected.$$ <<EOF 53core 'core' of $pid: sleep 100000 54 E: aslr 55 I: aslr 56EOF 57 58/usr/bin/psecflags core | grep -v '[LU]:' > core-output.$$ 59 60if ! diff -u core-expected.$$ core-output.$$; then 61 exit 1; 62fi 63 64exit 0 65