diff options
author | Andy Fiddaman <omnios@citrus-it.co.uk> | 2020-12-27 17:47:37 +0000 |
---|---|---|
committer | Andy Fiddaman <omnios@citrus-it.co.uk> | 2021-01-30 17:13:33 +0000 |
commit | b30d193948be5a7794d7ae3ba0ed9c2f72c88e0f (patch) | |
tree | 6a37e590faffb9bb9af66887de645c546445036c /usr/src/lib/libast/common/string/strgid.c | |
parent | df36e06d12cbf655ddf22339ef8c39fa2b83ebf8 (diff) | |
download | illumos-gate-b30d193948be5a7794d7ae3ba0ed9c2f72c88e0f.tar.gz |
13405 ksh93 update to 2012-08-01
13434 sh: mishandles backslash as last character of a block of input
11750 ksh mkdir builtin doesn't honor special file permissions
9199 ksh93 builtin *grep -v mishandles blank lines, blows up libgcrypt-config
6756 sh (and ksh) have issues with ${1+"$@"}
6520 ksh: sleep could wait forever
4860 ksh93: core in printf
3791 /bin/sh's builtin 'rm' busted: 'rm -f' without arguments returns error
1047 ksh overwrites child core files
880 ksh93 coredumps on 'unset'
499 "interrupted system call" when using "tee" builtin in ksh
Reviewed by: Robert Mustacchi <rm@fingolfin.org>
Reviewed by: Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
Reviewed by: Dominik Hassler <hadfl@omnios.org>
Approved by: Rich Lowe <richlowe@richlowe.net>
Diffstat (limited to 'usr/src/lib/libast/common/string/strgid.c')
-rw-r--r-- | usr/src/lib/libast/common/string/strgid.c | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/usr/src/lib/libast/common/string/strgid.c b/usr/src/lib/libast/common/string/strgid.c deleted file mode 100644 index 746d058930..0000000000 --- a/usr/src/lib/libast/common/string/strgid.c +++ /dev/null @@ -1,121 +0,0 @@ -/*********************************************************************** -* * -* This software is part of the ast package * -* Copyright (c) 1985-2010 AT&T Intellectual Property * -* and is licensed under the * -* Common Public License, Version 1.0 * -* by AT&T Intellectual Property * -* * -* A copy of the License is available at * -* http://www.opensource.org/licenses/cpl1.0.txt * -* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * -* * -* Information and Software Systems Research * -* AT&T Research * -* Florham Park NJ * -* * -* Glenn Fowler <gsf@research.att.com> * -* David Korn <dgk@research.att.com> * -* Phong Vo <kpv@research.att.com> * -* * -***********************************************************************/ -#pragma prototyped -/* - * Glenn Fowler - * AT&T Bell Laboratories - * - * gid name -> number - */ - -#if defined(__STDPP__directive) && defined(__STDPP__hide) -__STDPP__directive pragma pp:hide getgrgid getgrnam getpwnam -#else -#define getgrgid ______getgrgid -#define getgrnam ______getgrnam -#define getpwnam ______getpwnam -#endif - -#include <ast.h> -#include <cdt.h> -#include <pwd.h> -#include <grp.h> - -#if defined(__STDPP__directive) && defined(__STDPP__hide) -__STDPP__directive pragma pp:nohide getgrgid getgrnam getpwnam -#else -#undef getgrgid -#undef getgrnam -#undef getpwnam -#endif - -extern struct group* getgrgid(gid_t); -extern struct group* getgrnam(const char*); -extern struct passwd* getpwnam(const char*); - -typedef struct Id_s -{ - Dtlink_t link; - int id; - char name[1]; -} Id_t; - -/* - * return gid number given gid/uid name - * gid attempted first, then uid->pw_gid - * -1 on first error for a given name - * -2 on subsequent errors for a given name - */ - -int -strgid(const char* name) -{ - register Id_t* ip; - register struct group* gr; - register struct passwd* pw; - int id; - char* e; - - static Dt_t* dict; - static Dtdisc_t disc; - - if (!dict) - { - disc.key = offsetof(Id_t, name); - dict = dtopen(&disc, Dthash); - } - else if (ip = (Id_t*)dtmatch(dict, name)) - return ip->id; - if (gr = getgrnam(name)) - id = gr->gr_gid; - else if (pw = getpwnam(name)) - id = pw->pw_gid; - else - { - id = strtol(name, &e, 0); -#if _WINIX - if (!*e) - { - if (!getgrgid(id)) - id = -1; - } - else if (!streq(name, "sys")) - id = -1; - else if (gr = getgrnam("Administrators")) - id = gr->gr_gid; - else if (pw = getpwnam("Administrator")) - id = pw->pw_gid; - else - id = -1; -#else - if (*e || !getgrgid(id)) - id = -1; -#endif - } - if (dict && (ip = newof(0, Id_t, 1, strlen(name)))) - { - strcpy(ip->name, name); - ip->id = id >= 0 ? id : -2; - dtinsert(dict, ip); - } - return id; -} |