[Initng-svn] r3162 - initng/trunk/plugins/suid
svn at initng.thinktux.net
svn at initng.thinktux.net
Wed Mar 1 02:10:20 CET 2006
Author: makomk
Date: Wed Mar 1 02:10:19 2006
New Revision: 3162
Modified:
initng/trunk/plugins/suid/initng_suid.c
Log:
Hopefully fix sgid
Modified: initng/trunk/plugins/suid/initng_suid.c
==============================================================================
--- initng/trunk/plugins/suid/initng_suid.c (original)
+++ initng/trunk/plugins/suid/initng_suid.c Wed Mar 1 02:10:19 2006
@@ -55,14 +55,15 @@
assert(service->name);
assert(process);
- if (tmp = initng_active_db_get_string(&SUID, service))
+ if ((tmp = initng_active_db_get_string(&SGID, service)))
{
- username = fix_variables(tmp, service);
- free(tmp);
- tmp = NULL;
+ groupname = fix_variables(tmp, service);
}
- if (username)
+ tmp = initng_active_db_get_string(&SUID, service);
+ if(tmp) username = fix_variables(tmp, service);
+
+ if(username && !groupname)
{
i = strcspn(username, ":");
if (username[i] == ':')
@@ -70,32 +71,18 @@
groupname = strdup(username + i + 1);
username[i] = 0;
}
- else if ((tmp = initng_active_db_get_string(&SGID, service)))
- {
- groupname = fix_variables(tmp, service);
- free(tmp);
- tmp = NULL;
- }
}
+
if (groupname)
group = getgrnam(groupname);
if (username)
passwd = getpwnam(username);
- if (group)
- gid = group->gr_gid;
- else if (groupname)
- {
- F_("GROUP \"%s\" not found!\n", groupname);
- ret += 1;
- }
-
if (passwd)
{
uid = passwd->pw_uid;
- if (!gid)
- gid = passwd->pw_gid;
+ gid = passwd->pw_gid;
}
else if (username)
{
@@ -103,6 +90,14 @@
ret += 2;
}
+ if (group)
+ gid = group->gr_gid;
+ else if (groupname)
+ {
+ F_("GROUP \"%s\" not found!\n", groupname);
+ ret += 1;
+ }
+
if (gid)
{
D_("Change to gid %i", gid);
More information about the Initng-svn
mailing list