19512fe85Sahl#!/bin/ksh -p 29512fe85Sahl# 39512fe85Sahl# CDDL HEADER START 49512fe85Sahl# 59512fe85Sahl# The contents of this file are subject to the terms of the 69512fe85Sahl# Common Development and Distribution License (the "License"). 79512fe85Sahl# You may not use this file except in compliance with the License. 89512fe85Sahl# 99512fe85Sahl# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 109512fe85Sahl# or http://www.opensolaris.org/os/licensing. 119512fe85Sahl# See the License for the specific language governing permissions 129512fe85Sahl# and limitations under the License. 139512fe85Sahl# 149512fe85Sahl# When distributing Covered Code, include this CDDL HEADER in each 159512fe85Sahl# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 169512fe85Sahl# If applicable, add the following below this CDDL HEADER, with the 179512fe85Sahl# fields enclosed by brackets "[]" replaced with your own identifying 189512fe85Sahl# information: Portions Copyright [yyyy] [name of copyright owner] 199512fe85Sahl# 209512fe85Sahl# CDDL HEADER END 219512fe85Sahl# 229512fe85Sahl 239512fe85Sahl# 249512fe85Sahl# Copyright 2006 Sun Microsystems, Inc. All rights reserved. 259512fe85Sahl# Use is subject to license terms. 269512fe85Sahl# 279512fe85Sahl 289512fe85Sahl#ident "%Z%%M% %I% %E% SMI" 299512fe85Sahl 309512fe85Sahl############################################################################ 319512fe85Sahl# ASSERTION: 329512fe85Sahl# To verify projid of child process. 339512fe85Sahl# 349512fe85Sahl# SECTION: Scripting 359512fe85Sahl# 369512fe85Sahl############################################################################ 379512fe85Sahl 38*23b5c241Stomeeif [ $# != 1 ]; then 39*23b5c241Stomee echo expected one argument: '<'dtrace-path'>' 40*23b5c241Stomee exit 2 41*23b5c241Stomeefi 42*23b5c241Stomee 43*23b5c241Stomeedtrace=$1 449512fe85Sahlbname=`/bin/basename $0` 459512fe85Sahldfilename=/var/tmp/$bname.$$ 469512fe85Sahl 479512fe85Sahl## Create .d file 489512fe85Sahl########################################################################## 499512fe85Sahlcat > $dfilename <<-EOF 50*23b5c241Stomee#!$dtrace -qs 519512fe85Sahl 529512fe85Sahl 539512fe85SahlBEGIN 549512fe85Sahl/\$projid != \$1/ 559512fe85Sahl{ 569512fe85Sahl exit(1); 579512fe85Sahl} 589512fe85Sahl 599512fe85SahlBEGIN 609512fe85Sahl/\$projid == \$1/ 619512fe85Sahl{ 629512fe85Sahl exit(0); 639512fe85Sahl} 649512fe85SahlEOF 659512fe85Sahl########################################################################## 669512fe85Sahl 679512fe85Sahl 689512fe85Sahl#Call dtrace -C -s <.d> 699512fe85Sahl 709512fe85Sahlchmod 555 $dfilename 719512fe85Sahl 729512fe85Sahlprojectid=`ps -o pid,projid | grep "$$ " | awk '{print $2}' 2>/dev/null` 739512fe85Sahlif [ $? -ne 0 ]; then 749512fe85Sahl print -u2 "unable to get uid of the current process with pid = $$" 759512fe85Sahl exit 1 769512fe85Sahlfi 779512fe85Sahl 789512fe85Sahl$dfilename $projectid >/dev/null 2>&1 79*23b5c241Stomee 809512fe85Sahlif [ $? -ne 0 ]; then 819512fe85Sahl print -u2 "Error in executing $dfilename" 829512fe85Sahl exit 1 839512fe85Sahlfi 849512fe85Sahl 859512fe85Sahl#/usr/bin/rm -f $dfilename 869512fe85Sahlexit 0 87