(main): work-around for setuid and capabilities bug fixed in Linux
2.2.16 git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@8367 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -812,12 +812,15 @@ main(int argc, char **argv)
|
|||||||
const char *local_user;
|
const char *local_user;
|
||||||
char *host = NULL;
|
char *host = NULL;
|
||||||
int host_index = -1;
|
int host_index = -1;
|
||||||
int status;
|
int status;
|
||||||
|
uid_t uid;
|
||||||
|
|
||||||
priv_port1 = priv_port2 = IPPORT_RESERVED-1;
|
priv_port1 = priv_port2 = IPPORT_RESERVED-1;
|
||||||
priv_socket1 = rresvport(&priv_port1);
|
priv_socket1 = rresvport(&priv_port1);
|
||||||
priv_socket2 = rresvport(&priv_port2);
|
priv_socket2 = rresvport(&priv_port2);
|
||||||
setuid(getuid());
|
uid = getuid ();
|
||||||
|
if (setuid (uid) || (uid != 0 && setuid(0) == 0))
|
||||||
|
err (1, "setuid");
|
||||||
|
|
||||||
set_progname (argv[0]);
|
set_progname (argv[0]);
|
||||||
|
|
||||||
|
@@ -405,7 +405,8 @@ main(int argc, char **argv)
|
|||||||
err(1, "setgid");
|
err(1, "setgid");
|
||||||
if (initgroups (su_info->pw_name, su_info->pw_gid) < 0)
|
if (initgroups (su_info->pw_name, su_info->pw_gid) < 0)
|
||||||
err (1, "initgroups");
|
err (1, "initgroups");
|
||||||
if(setuid(su_info->pw_uid) < 0)
|
if(setuid(su_info->pw_uid) < 0
|
||||||
|
|| (su_info->pw_uid != 0 && setuid(0) == 0))
|
||||||
err(1, "setuid");
|
err(1, "setuid");
|
||||||
|
|
||||||
#ifdef KRB5
|
#ifdef KRB5
|
||||||
|
Reference in New Issue
Block a user