setproctitle() doesn't need to be called with root privs, so move
it from id.c into defs.c
This commit is contained in:
parent
2ceee5e9a7
commit
ebe96675ee
@ -51,7 +51,6 @@
|
||||
#include <sys/uio.h>
|
||||
#include <sys/wait.h>
|
||||
#if defined(__FreeBSD__) && !defined(NOKLDLOAD)
|
||||
#include <sys/linker.h>
|
||||
#include <sys/module.h>
|
||||
#endif
|
||||
#include <termios.h>
|
||||
@ -1852,7 +1851,7 @@ bundle_setsid(struct bundle *bundle, int holdsession)
|
||||
*/
|
||||
waitpid(pid, &status, 0);
|
||||
/* Tweak our process arguments.... */
|
||||
ID0setproctitle("session owner");
|
||||
SetTitle("session owner");
|
||||
setuid(ID0realuid());
|
||||
/*
|
||||
* Hang around for a HUP. This should happen as soon as the
|
||||
|
@ -33,11 +33,6 @@
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#ifdef __OpenBSD__
|
||||
#include <util.h>
|
||||
#else
|
||||
#include <libutil.h>
|
||||
#endif
|
||||
#include <paths.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@ -2731,7 +2726,7 @@ SetProcTitle(struct cmdargs const *arg)
|
||||
int len, remaining, f, argc = arg->argc - arg->argn;
|
||||
|
||||
if (arg->argc == arg->argn) {
|
||||
ID0setproctitle(NULL);
|
||||
SetTitle(NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -2757,7 +2752,7 @@ SetProcTitle(struct cmdargs const *arg)
|
||||
}
|
||||
*ptr = '\0';
|
||||
|
||||
ID0setproctitle(title);
|
||||
SetTitle(title);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -35,6 +35,11 @@
|
||||
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#ifdef __OpenBSD__
|
||||
#include <util.h>
|
||||
#else
|
||||
#include <libutil.h>
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -358,3 +363,14 @@ ex_desc(int ex)
|
||||
snprintf(num, sizeof num, "%d", ex);
|
||||
return num;
|
||||
}
|
||||
|
||||
void
|
||||
SetTitle(const char *title)
|
||||
{
|
||||
if (title == NULL)
|
||||
setproctitle(NULL);
|
||||
else if (title[0] == '-' && title[1] != '\0')
|
||||
setproctitle("-%s", title + 1);
|
||||
else
|
||||
setproctitle("%s", title);
|
||||
}
|
||||
|
@ -114,3 +114,4 @@ extern int MakeArgs(char *, char **, int, int);
|
||||
extern const char *NumStr(long, char *, size_t);
|
||||
extern const char *HexStr(long, char *, size_t);
|
||||
extern const char *ex_desc(int);
|
||||
extern void SetTitle(const char *);
|
||||
|
@ -38,7 +38,6 @@
|
||||
#include <signal.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h> /* setproctitle() under OpenBSD (+NetBSD ?)*/
|
||||
#include <string.h>
|
||||
#include <sysexits.h>
|
||||
#if defined(__FreeBSD__) && !defined(NOKLDLOAD)
|
||||
@ -273,23 +272,6 @@ ID0kill(pid_t pid, int sig)
|
||||
return result;
|
||||
}
|
||||
|
||||
void
|
||||
ID0setproctitle(const char *title)
|
||||
{
|
||||
ID0set0();
|
||||
if (title == NULL) {
|
||||
setproctitle(NULL);
|
||||
log_Printf(LogID0, "setproctitle(NULL)\n");
|
||||
} else {
|
||||
if (title[0] == '-' && title[1] != '\0')
|
||||
setproctitle("-%s", title + 1);
|
||||
else
|
||||
setproctitle("%s", title);
|
||||
log_Printf(LogID0, "setproctitle(\"%%s\", \"%s\")\n", title);
|
||||
}
|
||||
ID0setuser();
|
||||
}
|
||||
|
||||
#if defined(__FreeBSD__) && !defined(NOKLDLOAD)
|
||||
int
|
||||
ID0kldload(const char *dev)
|
||||
|
@ -45,7 +45,6 @@ extern void ID0logout(const char *, int);
|
||||
extern int ID0bind_un(int, const struct sockaddr_un *);
|
||||
extern int ID0connect_un(int, const struct sockaddr_un *);
|
||||
extern int ID0kill(pid_t, int);
|
||||
extern void ID0setproctitle(const char *);
|
||||
#if defined(__FreeBSD__) && !defined(NOKLDLOAD)
|
||||
extern int ID0kldload(const char *);
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user