6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey/***********************************************************************
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey* This software is part of the ast package *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey* Copyright (c) 1985-2011 AT&T Intellectual Property *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey* and is licensed under the *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey* Common Public License, Version 1.0 *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey* by AT&T Intellectual Property *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey* A copy of the License is available at *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey* http://www.opensource.org/licenses/cpl1.0.txt *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey* Information and Software Systems Research *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey* AT&T Research *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey* Florham Park NJ *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey* Glenn Fowler <gsf@research.att.com> *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey* David Korn <dgk@research.att.com> *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey* Phong Vo <kpv@research.att.com> *
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey***********************************************************************/
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey * access() euid/egid implementation
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskeyeaccess(const char* path, register int flags)
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey register int mode;
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey init = (ruid == euid && rgid == egid) ? 1 : -1;
6ba597c56d749c61b4f783157f63196d7b2445f0Anurag S. Maskey if (!S_ISREG(st.st_mode) || !(flags & X_OK) || (st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH)))
#if _lib_getgroups
#if _lib_getgroups
n = ngroups;
goto setgroup;
nope: