Compare commits
4 Commits
cgroup-nam
...
openrc-0.9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ba457f1fed | ||
|
|
722871c0ae | ||
|
|
d670dbddf7 | ||
|
|
f1a19aed78 |
@@ -1,3 +1,3 @@
|
||||
NAME= openrc
|
||||
VERSION= 0.9.9
|
||||
VERSION= 0.9.9.2
|
||||
PKG= ${NAME}-${VERSION}
|
||||
|
||||
@@ -128,10 +128,10 @@ rc_getline(char **line, size_t *len, FILE *fp)
|
||||
}
|
||||
librc_hidden_def(rc_getline)
|
||||
|
||||
#ifdef __linux__
|
||||
char *
|
||||
rc_proc_getent(const char *ent)
|
||||
{
|
||||
#ifdef __linux__
|
||||
FILE *fp;
|
||||
char *proc, *p, *value = NULL;
|
||||
size_t i, len;
|
||||
@@ -171,9 +171,11 @@ rc_proc_getent(const char *ent)
|
||||
free(proc);
|
||||
|
||||
return value;
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
librc_hidden_def(rc_proc_getent)
|
||||
#endif
|
||||
|
||||
RC_STRINGLIST *
|
||||
rc_config_list(const char *file)
|
||||
|
||||
@@ -360,12 +360,10 @@ bool rc_newer_than(const char *, const char *, time_t *, char *);
|
||||
* @return true if source is older than target, otherwise false */
|
||||
bool rc_older_than(const char *, const char *, time_t *, char *);
|
||||
|
||||
#ifdef __linux__
|
||||
/*! Read variables/values from /proc/cmdline
|
||||
* @param value
|
||||
* @return pointer to the value, otherwise NULL */
|
||||
char *rc_proc_getent(const char *);
|
||||
#endif
|
||||
|
||||
/*! Update the cached dependency tree if it's older than any init script,
|
||||
* its configuration file or an external configuration file the init script
|
||||
|
||||
@@ -1178,20 +1178,18 @@ start_stop_daemon(int argc, char **argv)
|
||||
}
|
||||
|
||||
#ifdef HAVE_PAM
|
||||
if (changeuser != NULL)
|
||||
if (changeuser != NULL) {
|
||||
pamr = pam_start("start-stop-daemon",
|
||||
changeuser, &conv, &pamh);
|
||||
else
|
||||
pamr = pam_start("start-stop-daemon",
|
||||
"nobody", &conv, &pamh);
|
||||
|
||||
if (pamr == PAM_SUCCESS)
|
||||
pamr = pam_acct_mgmt(pamh, PAM_SILENT);
|
||||
if (pamr == PAM_SUCCESS)
|
||||
pamr = pam_open_session(pamh, PAM_SILENT);
|
||||
if (pamr != PAM_SUCCESS)
|
||||
eerrorx("%s: pam error: %s",
|
||||
applet, pam_strerror(pamh, pamr));
|
||||
if (pamr == PAM_SUCCESS)
|
||||
pamr = pam_acct_mgmt(pamh, PAM_SILENT);
|
||||
if (pamr == PAM_SUCCESS)
|
||||
pamr = pam_open_session(pamh, PAM_SILENT);
|
||||
if (pamr != PAM_SUCCESS)
|
||||
eerrorx("%s: pam error: %s",
|
||||
applet, pam_strerror(pamh, pamr));
|
||||
}
|
||||
#endif
|
||||
|
||||
if (gid && setgid(gid))
|
||||
@@ -1219,15 +1217,17 @@ start_stop_daemon(int argc, char **argv)
|
||||
rc_stringlist_add(env_list, environ[i++]);
|
||||
|
||||
#ifdef HAVE_PAM
|
||||
pamenv = (const char *const *)pam_getenvlist(pamh);
|
||||
if (pamenv) {
|
||||
while (*pamenv) {
|
||||
/* Don't add strings unless they set a var */
|
||||
if (strchr(*pamenv, '='))
|
||||
putenv(xstrdup(*pamenv));
|
||||
else
|
||||
unsetenv(*pamenv);
|
||||
pamenv++;
|
||||
if (changeuser != NULL) {
|
||||
pamenv = (const char *const *)pam_getenvlist(pamh);
|
||||
if (pamenv) {
|
||||
while (*pamenv) {
|
||||
/* Don't add strings unless they set a var */
|
||||
if (strchr(*pamenv, '='))
|
||||
putenv(xstrdup(*pamenv));
|
||||
else
|
||||
unsetenv(*pamenv);
|
||||
pamenv++;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -1304,7 +1304,7 @@ start_stop_daemon(int argc, char **argv)
|
||||
setsid();
|
||||
execvp(exec, argv);
|
||||
#ifdef HAVE_PAM
|
||||
if (pamr == PAM_SUCCESS)
|
||||
if (changeuser != NULL && pamr == PAM_SUCCESS)
|
||||
pam_close_session(pamh, PAM_SILENT);
|
||||
#endif
|
||||
eerrorx("%s: failed to exec `%s': %s",
|
||||
|
||||
Reference in New Issue
Block a user