2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-31 14:25:41 +00:00

[master] Print out files used and move the dropping of privileges in paranoia

17551 - When starting up in verbose mode have the server print out
        the files it will use

25806 - Moving the paranoia code that drops the privileges to be after
        the server has written the PID file.
This commit is contained in:
Shawn Routhier
2014-05-07 11:54:27 -07:00
parent 02b0bdc3cf
commit d8c7c34ef6
2 changed files with 36 additions and 17 deletions

View File

@@ -308,7 +308,13 @@ main(int argc, char **argv) {
local_family_set = 1;
#endif /* DHCPv6 */
} else if (!strcmp (argv [i], "--version")) {
log_info("isc-dhcpd-%s", PACKAGE_VERSION);
const char vstring[] = "isc-dhcpd-";
IGNORE_RET(write(STDERR_FILENO, vstring,
strlen(vstring)));
IGNORE_RET(write(STDERR_FILENO,
PACKAGE_VERSION,
strlen(PACKAGE_VERSION)));
IGNORE_RET(write(STDERR_FILENO, "\n", 1));
exit (0);
#if defined (TRACING)
} else if (!strcmp (argv [i], "-tf")) {
@@ -394,6 +400,9 @@ main(int argc, char **argv) {
log_info (copyright);
log_info (arr);
log_info (url);
log_info ("Config file: %s", path_dhcpd_conf);
log_info ("Database file: %s", path_dhcpd_db);
log_info ("PID file: %s", path_dhcpd_pid);
} else {
quiet = 0;
log_perror = 0;
@@ -690,22 +699,6 @@ main(int argc, char **argv) {
exit (0);
}
#if defined (PARANOIA)
/* change uid to the specified one */
if (set_gid) {
if (setgroups (0, (void *)0))
log_fatal ("setgroups: %m");
if (setgid (set_gid))
log_fatal ("setgid(%d): %m", (int) set_gid);
}
if (set_uid) {
if (setuid (set_uid))
log_fatal ("setuid(%d): %m", (int) set_uid);
}
#endif /* PARANOIA */
/*
* Deal with pid files. If the user told us
* not to write a file we don't read one either
@@ -742,6 +735,22 @@ main(int argc, char **argv) {
}
}
#if defined (PARANOIA)
/* change uid to the specified one */
if (set_gid) {
if (setgroups (0, (void *)0))
log_fatal ("setgroups: %m");
if (setgid (set_gid))
log_fatal ("setgid(%d): %m", (int) set_gid);
}
if (set_uid) {
if (setuid (set_uid))
log_fatal ("setuid(%d): %m", (int) set_uid);
}
#endif /* PARANOIA */
/* If we were requested to log to stdout on the command line,
keep doing so; otherwise, stop. */
if (log_perror == -1)