diff options
| author | Roy Marples <roy@marples.name> | 2007-04-13 16:00:25 +0000 | 
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2007-04-13 16:00:25 +0000 | 
| commit | 6ff4a83d591c77acc268db8a5b8c0b2011adbf31 (patch) | |
| tree | acde7bcaabaf47a4f731de84beb6a9539afe794c | |
| parent | 271426304062de4825060b2c2acb5061910d1016 (diff) | |
| download | openrc-6ff4a83d591c77acc268db8a5b8c0b2011adbf31.tar.xz | |
More basename compliance.
| -rw-r--r-- | src/librc-daemon.c | 16 | 
1 files changed, 13 insertions, 3 deletions
| diff --git a/src/librc-daemon.c b/src/librc-daemon.c index 4473cc16..23dfc01a 100644 --- a/src/librc-daemon.c +++ b/src/librc-daemon.c @@ -284,7 +284,8 @@ void rc_set_service_daemon (const char *service, const char *exec,  							const char *name, const char *pidfile,  							bool started)  { -	char *dirpath = rc_strcatpaths (RC_SVCDIR, "daemons", basename (service), +	char *svc = rc_xstrdup (service); +	char *dirpath = rc_strcatpaths (RC_SVCDIR, "daemons", basename (svc),  									(char *) NULL);  	char **files = NULL;  	char *file; @@ -295,6 +296,7 @@ void rc_set_service_daemon (const char *service, const char *exec,  	char *mpidfile;  	int nfiles = 0; +	free (svc);  	if (! exec && ! name && ! pidfile)  		return; @@ -379,12 +381,16 @@ bool rc_service_started_daemon (const char *service, const char *exec,  	int i;  	char *mexec;  	bool retval = false; +	char *svc;  	if (! service || ! exec)  		return (false); -	dirpath = rc_strcatpaths (RC_SVCDIR, "daemons", basename (service), +	svc = rc_xstrdup (service); +	dirpath = rc_strcatpaths (RC_SVCDIR, "daemons", basename (svc),  							  (char *) NULL); +	free (svc); +  	if (! rc_is_dir (dirpath)) {  		free (dirpath);  		return (false); @@ -432,12 +438,16 @@ bool rc_service_daemons_crashed (const char *service)  	char *p;  	char *token;  	bool retval = false; +	char *svc;  	if (! service)  		return (false); -	dirpath = rc_strcatpaths (RC_SVCDIR, "daemons", basename (service), +	svc = rc_xstrdup (service); +	dirpath = rc_strcatpaths (RC_SVCDIR, "daemons", basename (svc),  							  (char *) NULL); +	free (svc); +  	if (! rc_is_dir (dirpath)) {  		free (dirpath);  		return (false); | 
