* (child_info.h, cygheap.h, dcrt0.cc, dir.cc, fhandler.cc, fhandler.h,
fhandler_clipboard.cc, fhandler_disk_file.cc, fhandler_dsp.cc, fhandler_floppy.cc, fhandler_mem.cc, fhandler_random.cc, fhandler_tape.cc, fhandler_zero.cc, grp.cc, mmap.cc, passwd.cc, pinfo.cc, pinfo.h, pipe.cc, sec_acl.cc, sec_helper.cc, security.cc, security.h, spawn.cc, syscalls.cc, thread.h, uinfo.cc, winsup.h): Change usage of uid_t to __uid16_t, gid_t to __gid16_t and off_t to __off32_t throughout. Use INVALID_UID, INVALID_GID and INVALID_SEEK instead casting -1 to the appropriate type. * winsup.h: Define INVALID_UID, INVALID_GID and INVALID_SEEK. * include/cygwin/acl.h: Define internal __aclent16_t and __aclent32_t types. Don't declare acl functions when compiling Cygwin. * include/cygwin/grp.h: Declare getgrgid() and getgrnam() with correct types for internal usage.
This commit is contained in:
@@ -129,7 +129,7 @@ cygsid::getfrompw (const struct passwd *pw)
|
||||
}
|
||||
|
||||
BOOL
|
||||
cygsid::getfromgr (const struct group *gr)
|
||||
cygsid::getfromgr (const struct __group16 *gr)
|
||||
{
|
||||
char *sp = (gr && gr->gr_passwd) ? gr->gr_passwd : NULL;
|
||||
return (*this = sp ?: "") != NULL;
|
||||
@@ -176,7 +176,7 @@ cygsid::get_id (BOOL search_grp, int *type)
|
||||
}
|
||||
if (search_grp || type)
|
||||
{
|
||||
struct group *gr;
|
||||
struct __group16 *gr;
|
||||
for (int gidx = 0; (gr = internal_getgrent (gidx)); ++gidx)
|
||||
{
|
||||
if (sid.getfromgr (gr) && sid == psid)
|
||||
@@ -226,7 +226,7 @@ cygsid::get_id (BOOL search_grp, int *type)
|
||||
*type = GROUP;
|
||||
if (id == -1)
|
||||
{
|
||||
struct group *gr = getgrnam (account);
|
||||
struct __group16 *gr = getgrnam (account);
|
||||
if (gr)
|
||||
id = gr->gr_gid;
|
||||
}
|
||||
@@ -251,13 +251,13 @@ cygsid::get_id (BOOL search_grp, int *type)
|
||||
}
|
||||
|
||||
BOOL
|
||||
is_grp_member (uid_t uid, gid_t gid)
|
||||
is_grp_member (__uid16_t uid, __gid16_t gid)
|
||||
{
|
||||
extern int getgroups (int, gid_t *, gid_t, const char *);
|
||||
extern int getgroups (int, __gid16_t *, __gid16_t, const char *);
|
||||
BOOL grp_member = TRUE;
|
||||
|
||||
struct passwd *pw = getpwuid (uid);
|
||||
gid_t grps[NGROUPS_MAX];
|
||||
__gid16_t grps[NGROUPS_MAX];
|
||||
int cnt = getgroups (NGROUPS_MAX, grps,
|
||||
pw ? pw->pw_gid : myself->gid,
|
||||
pw ? pw->pw_name : cygheap->user.name ());
|
||||
|
Reference in New Issue
Block a user