version 1.12, 2004/09/28 15:10:50 |
version 1.13, 2005/05/31 21:13:43 |
|
|
dirparent = def_timestampdir; |
dirparent = def_timestampdir; |
len = easprintf(timestampdir, "%s/%s", dirparent, user_name); |
len = easprintf(timestampdir, "%s/%s", dirparent, user_name); |
if (len >= PATH_MAX) |
if (len >= PATH_MAX) |
log_error(0, "timestamp path too long: %s", timestampdir); |
log_error(0, "timestamp path too long: %s", *timestampdir); |
|
|
/* |
/* |
* Timestamp file may be a file in the directory or NUL to use |
* Timestamp file may be a file in the directory or NUL to use |
|
|
else |
else |
len = easprintf(timestampfile, "%s/%s/%s", dirparent, user_name, p); |
len = easprintf(timestampfile, "%s/%s/%s", dirparent, user_name, p); |
if (len >= PATH_MAX) |
if (len >= PATH_MAX) |
log_error(0, "timestamp path too long: %s", timestampfile); |
log_error(0, "timestamp path too long: %s", *timestampfile); |
} else if (def_targetpw) { |
} else if (def_targetpw) { |
len = easprintf(timestampfile, "%s/%s/%s", dirparent, user_name, |
len = easprintf(timestampfile, "%s/%s/%s", dirparent, user_name, |
*user_runas); |
*user_runas); |
if (len >= PATH_MAX) |
if (len >= PATH_MAX) |
log_error(0, "timestamp path too long: %s", timestampfile); |
log_error(0, "timestamp path too long: %s", *timestampfile); |
} else |
} else |
*timestampfile = NULL; |
*timestampfile = NULL; |
} |
} |
|
|
/* If bad uid or file mode, complain and kill the bogus file. */ |
/* If bad uid or file mode, complain and kill the bogus file. */ |
if (sb.st_uid != timestamp_uid) { |
if (sb.st_uid != timestamp_uid) { |
log_error(NO_EXIT, |
log_error(NO_EXIT, |
"%s owned by uid %ud, should be uid %lu", |
"%s owned by uid %lu, should be uid %lu", |
timestampfile, (unsigned long) sb.st_uid, |
timestampfile, (unsigned long) sb.st_uid, |
(unsigned long) timestamp_uid); |
(unsigned long) timestamp_uid); |
(void) unlink(timestampfile); |
(void) unlink(timestampfile); |