119304Speter#!/bin/ksh -p 219304Speter# 319304Speter# CDDL HEADER START 419304Speter# 519304Speter# The contents of this file are subject to the terms of the 619304Speter# Common Development and Distribution License (the "License"). 719304Speter# You may not use this file except in compliance with the License. 819304Speter# 919304Speter# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1019304Speter# or http://www.opensolaris.org/os/licensing. 1119304Speter# See the License for the specific language governing permissions 1219304Speter# and limitations under the License. 1319304Speter# 1419304Speter# When distributing Covered Code, include this CDDL HEADER in each 1519304Speter# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1619304Speter# If applicable, add the following below this CDDL HEADER, with the 1719304Speter# fields enclosed by brackets "[]" replaced with your own identifying 1819304Speter# information: Portions Copyright [yyyy] [name of copyright owner] 1919304Speter# 2019304Speter# CDDL HEADER END 2119304Speter# 2219304Speter 2319304Speter# 2419304Speter# Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2519304Speter# Use is subject to license terms. 2619304Speter# 2719304Speter 2819304Speter#ident "%Z%%M% %I% %E% SMI" 2919304Speter 3019304Speter############################################################################ 3119304Speter# ASSERTION: 3219304Speter# To verify gid of the child process. 3319304Speter# 3419304Speter# SECTION: Scripting 3519304Speter# 3619304Speter############################################################################ 3719304Speter 3819304Speterif [ $# != 1 ]; then 3919304Speter echo expected one argument: '<'dtrace-path'>' 4019304Speter exit 2 4119304Speterfi 4219304Speter 4319304Speterdtrace=$1 4419304Speterbname=`/bin/basename $0` 4519304Speterdfilename=/var/tmp/$bname.$$ 4619304Speter 4719304Speter## Create .d file 4819304Speter########################################################################## 4919304Spetercat > $dfilename <<-EOF 5019304Speter#!$dtrace -qs 5119304Speter 5219304Speter 5319304SpeterBEGIN 5419304Speter/\$gid != \$1/ 5519304Speter{ 5619304Speter exit(1); 5719304Speter} 5819304Speter 5919304SpeterBEGIN 6019304Speter/\$gid == \$1/ 6119304Speter{ 6219304Speter exit(0); 6319304Speter} 6419304SpeterEOF 6519304Speter########################################################################## 6619304Speter 6719304Speter 6819304Speter#Call dtrace -C -s <.d> 6919304Speter 7019304Speterchmod 555 $dfilename 7119304Speter 7219304Spetergroupid=`ps -o pid,gid | grep "$$ " | awk '{print $2}' 2>/dev/null` 7319304Speterif [ $? -ne 0 ]; then 7419304Speter print -u2 "unable to get uid of the current process with pid = $$" 7519304Speter exit 1 7619304Speterfi 7719304Speter 7819304Speter$dfilename $groupid >/dev/null 2>&1 7919304Speter 8019304Speterif [ $? -ne 0 ]; then 8119304Speter print -u2 "Error in executing $dfilename" 8219304Speter exit 1 8319304Speterfi 8419304Speter 8519304Speter#/bin/rm -f $dfilename 8619304Speterexit 0 8719304Speter