Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 390459
Collapse All | Expand All

(-)file_not_specified_in_diff (-17 / +32 lines)
Line  Link Here
0
-- sudo-1.8.3p1.orig/src/sudo.c
0
++ sudo-1.8.3p1/src/sudo.c
Lines 135-142 static int policy_list(struct plugin_con Link Here
135
    char * const argv[], int verbose, const char *list_user);
135
    char * const argv[], int verbose, const char *list_user);
136
static int policy_validate(struct plugin_container *plugin);
136
static int policy_validate(struct plugin_container *plugin);
137
static void policy_invalidate(struct plugin_container *plugin, int remove);
137
static void policy_invalidate(struct plugin_container *plugin, int remove);
138
static int policy_init_session(struct plugin_container *plugin,
139
    struct passwd *pwd);
140
138
141
/* I/O log plugin convenience functions. */
139
/* I/O log plugin convenience functions. */
142
static int iolog_open(struct plugin_container *plugin, char * const settings[],
140
static int iolog_open(struct plugin_container *plugin, char * const settings[],
Lines 903-915 exec_setup(struct command_details *detai Link Here
903
    aix_restoreauthdb();
901
    aix_restoreauthdb();
904
#endif
902
#endif
905
903
906
    /*
907
     * Call policy plugin's session init before other setup occurs.
908
     * The session init code is expected to print an error as needed.
909
     */
910
    if (policy_init_session(&policy_plugin, pw) != TRUE)
911
	goto done;
912
913
#ifdef HAVE_SELINUX
904
#ifdef HAVE_SELINUX
914
    if (ISSET(details->flags, CD_RBAC_ENABLED)) {
905
    if (ISSET(details->flags, CD_RBAC_ENABLED)) {
915
	if (selinux_setup(details->selinux_role, details->selinux_type,
906
	if (selinux_setup(details->selinux_role, details->selinux_type,
Lines 1157-1167 policy_invalidate(struct plugin_containe Link Here
1157
    plugin->u.policy->invalidate(remove);
1148
    plugin->u.policy->invalidate(remove);
1158
}
1149
}
1159
1150
1160
static int
1151
int
1161
policy_init_session(struct plugin_container *plugin, struct passwd *pwd)
1152
policy_init_session(struct command_details *details)
1162
{
1153
{
1163
    if (plugin->u.policy->init_session)
1154
    struct passwd *pw;
1164
	return plugin->u.policy->init_session(pwd);
1155
    if (policy_plugin.u.policy->init_session) {
1156
#ifdef HAVE_SETAUTHDB
1157
        aix_setauthdb(IDtouser(details->euid));
1158
#endif
1159
        pw = getpwuid(details->euid);
1160
#ifdef HAVE_SETAUTHDB
1161
        aix_restoreauthdb();
1162
#endif
1163
	return policy_plugin.u.policy->init_session(pw);
1164
    }
1165
    return TRUE;
1165
    return TRUE;
1166
}
1166
}
1167
1167
1168
-- sudo-1.8.3p1.orig/src/exec_pty.c
1168
++ sudo-1.8.3p1/src/exec_pty.c
Lines 567-572 fork_pty(struct command_details *details Link Here
567
	}
567
	}
568
    }
568
    }
569
569
570
    /*
571
     * The policy plugin's session init must be run before we fork
572
     * or certain pam modules won't be able to track their state.
573
     */
574
    if (policy_init_session(details) != TRUE)
575
       exit(1); /* XXX */
576
570
    child = fork();
577
    child = fork();
571
    switch (child) {
578
    switch (child) {
572
    case -1:
579
    case -1:
573
-- sudo-1.8.3p1.orig/src/exec.c
580
++ sudo-1.8.3p1/src/exec.c
Lines 119-124 static int fork_cmnd(struct command_deta Link Here
119
    sa.sa_handler = handler;
119
    sa.sa_handler = handler;
120
    sigaction(SIGCONT, &sa, NULL);
120
    sigaction(SIGCONT, &sa, NULL);
121
121
122
    /*
123
     * The policy plugin's session init must be run before we fork
124
     * or certain pam modules won't be able to track their state.
125
     */
126
    if (policy_init_session(details) != TRUE)
127
       exit(1); /* XXX */
128
122
    child = fork();
129
    child = fork();
123
    switch (child) {
130
    switch (child) {
124
    case -1:
131
    case -1:
125
-- sudo-1.8.3p1.orig/src/sudo.h
132
++ sudo-1.8.3p1/src/sudo.h
Lines 201-206 void get_ttysize(int *rowp, int *colp); Link Here
201
201
202
/* sudo.c */
202
/* sudo.c */
203
int exec_setup(struct command_details *details, const char *ptyname, int ptyfd);
203
int exec_setup(struct command_details *details, const char *ptyname, int ptyfd);
204
int policy_init_session(struct command_details *details);
204
int run_command(struct command_details *details);
205
int run_command(struct command_details *details);
205
void sudo_debug(int level, const char *format, ...) __printflike(2, 3);
206
void sudo_debug(int level, const char *format, ...) __printflike(2, 3);
206
extern int debug_level;
207
extern int debug_level;

Return to bug 390459