Compare commits
	
		
			4 Commits
		
	
	
		
			funtoo-ope
			...
			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