Pass auth_pw to the timestamp functions.
This commit is contained in:
@@ -93,12 +93,12 @@ check_user(int validated, int mode)
|
|||||||
if (ISSET(mode, MODE_IGNORE_TICKET))
|
if (ISSET(mode, MODE_IGNORE_TICKET))
|
||||||
SET(validated, FLAG_CHECK_USER);
|
SET(validated, FLAG_CHECK_USER);
|
||||||
|
|
||||||
if (build_timestamp() == -1) {
|
if (build_timestamp(auth_pw) == -1) {
|
||||||
rval = -1;
|
rval = -1;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
status = timestamp_status();
|
status = timestamp_status(auth_pw);
|
||||||
|
|
||||||
if (status != TS_CURRENT || ISSET(validated, FLAG_CHECK_USER)) {
|
if (status != TS_CURRENT || ISSET(validated, FLAG_CHECK_USER)) {
|
||||||
char *prompt;
|
char *prompt;
|
||||||
@@ -127,7 +127,7 @@ check_user(int validated, int mode)
|
|||||||
/* Only update timestamp if user was validated. */
|
/* Only update timestamp if user was validated. */
|
||||||
if (rval == true && ISSET(validated, VALIDATE_OK) &&
|
if (rval == true && ISSET(validated, VALIDATE_OK) &&
|
||||||
!ISSET(mode, MODE_IGNORE_TICKET) && status != TS_ERROR)
|
!ISSET(mode, MODE_IGNORE_TICKET) && status != TS_ERROR)
|
||||||
update_timestamp();
|
update_timestamp(auth_pw);
|
||||||
|
|
||||||
done:
|
done:
|
||||||
sudo_auth_cleanup(auth_pw);
|
sudo_auth_cleanup(auth_pw);
|
||||||
@@ -152,7 +152,7 @@ display_lecture(int status)
|
|||||||
|
|
||||||
if (def_lecture == never ||
|
if (def_lecture == never ||
|
||||||
(def_lecture == once && already_lectured(status)))
|
(def_lecture == once && already_lectured(status)))
|
||||||
debug_return_int(false);
|
debug_return_bool(false);
|
||||||
|
|
||||||
memset(&msg, 0, sizeof(msg));
|
memset(&msg, 0, sizeof(msg));
|
||||||
memset(&repl, 0, sizeof(repl));
|
memset(&repl, 0, sizeof(repl));
|
||||||
@@ -175,7 +175,7 @@ display_lecture(int status)
|
|||||||
" #3) With great power comes great responsibility.\n\n");
|
" #3) With great power comes great responsibility.\n\n");
|
||||||
sudo_conv(1, &msg, &repl);
|
sudo_conv(1, &msg, &repl);
|
||||||
}
|
}
|
||||||
debug_return_int(true);
|
debug_return_bool(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -43,8 +43,8 @@ struct sudo_tty_info {
|
|||||||
pid_t sid; /* ID of session with controlling tty */
|
pid_t sid; /* ID of session with controlling tty */
|
||||||
};
|
};
|
||||||
|
|
||||||
bool update_timestamp(void);
|
bool update_timestamp(struct passwd *pw);
|
||||||
int build_timestamp(void);
|
int build_timestamp(struct passwd *pw);
|
||||||
int timestamp_status(void);
|
int timestamp_status(struct passwd *pw);
|
||||||
|
|
||||||
#endif /* _SUDOERS_CHECK_H */
|
#endif /* _SUDOERS_CHECK_H */
|
||||||
|
@@ -73,7 +73,7 @@ static char timestampfile[PATH_MAX];
|
|||||||
* Fills in timestampdir as well as timestampfile if using tty tickets.
|
* Fills in timestampdir as well as timestampfile if using tty tickets.
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
build_timestamp(void)
|
build_timestamp(struct passwd *pw)
|
||||||
{
|
{
|
||||||
char *dirparent;
|
char *dirparent;
|
||||||
struct stat sb;
|
struct stat sb;
|
||||||
@@ -135,7 +135,7 @@ bad:
|
|||||||
* Update the time on the timestamp file/dir or create it if necessary.
|
* Update the time on the timestamp file/dir or create it if necessary.
|
||||||
*/
|
*/
|
||||||
bool
|
bool
|
||||||
update_timestamp(void)
|
update_timestamp(struct passwd *pw)
|
||||||
{
|
{
|
||||||
debug_decl(update_timestamp, SUDO_DEBUG_AUTH)
|
debug_decl(update_timestamp, SUDO_DEBUG_AUTH)
|
||||||
|
|
||||||
@@ -374,7 +374,7 @@ done:
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
timestamp_status(void)
|
timestamp_status(struct passwd *pw)
|
||||||
{
|
{
|
||||||
return timestamp_status_internal(false);
|
return timestamp_status_internal(false);
|
||||||
}
|
}
|
||||||
@@ -390,7 +390,7 @@ remove_timestamp(bool remove)
|
|||||||
int status;
|
int status;
|
||||||
debug_decl(remove_timestamp, SUDO_DEBUG_AUTH)
|
debug_decl(remove_timestamp, SUDO_DEBUG_AUTH)
|
||||||
|
|
||||||
if (build_timestamp() == -1)
|
if (build_timestamp(NULL) == -1)
|
||||||
debug_return;
|
debug_return;
|
||||||
|
|
||||||
status = timestamp_status_internal(true);
|
status = timestamp_status_internal(true);
|
||||||
|
Reference in New Issue
Block a user