Fix checking of lecture status.

This commit is contained in:
Todd C. Miller
2014-01-30 16:15:03 -07:00
parent f4e037a0da
commit 63e7aa9942

View File

@@ -503,20 +503,21 @@ done:
bool bool
already_lectured(int unused) already_lectured(int unused)
{ {
char lecture_status[PATH_MAX]; char status_file[PATH_MAX];
struct stat sb; struct stat sb;
int len; int len;
debug_decl(already_lectured, SUDO_DEBUG_AUTH) debug_decl(already_lectured, SUDO_DEBUG_AUTH)
len = snprintf(lecture_status, sizeof(lecture_status), "%s/%s", if (ts_secure_dir(def_lecture_status_dir, false)) {
def_lecture_status_dir, user_name); len = snprintf(status_file, sizeof(status_file), "%s/%s",
if (len <= 0 || (size_t)len >= sizeof(lecture_status)) {
log_fatal(0, N_("lecture status path too long: %s/%s"),
def_lecture_status_dir, user_name); def_lecture_status_dir, user_name);
if (len <= 0 || (size_t)len >= sizeof(status_file)) {
log_fatal(0, N_("lecture status path too long: %s/%s"),
def_lecture_status_dir, user_name);
}
debug_return_bool(stat(status_file, &sb) == 0);
} }
debug_return_bool(false);
debug_return_bool(ts_secure_dir(def_lecture_status_dir, false) &&
stat(lecture_status, &sb) == 0);
} }
/* /*