diff options
| author | Roy Marples <roy@marples.name> | 2008-03-04 10:36:20 +0000 | 
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2008-03-04 10:36:20 +0000 | 
| commit | 6baff6cd1d1c39c9abe02263c582512743907aa5 (patch) | |
| tree | 2594f2e91da283d8f4d6ed22bfbc40a8f2b85c6b /src/librc | |
| parent | 6caea225d8d04c813055020c94e0d7ddd6eb7522 (diff) | |
| download | openrc-6baff6cd1d1c39c9abe02263c582512743907aa5.tar.xz | |
Don't store empty services.
Diffstat (limited to 'src/librc')
| -rw-r--r-- | src/librc/librc-depend.c | 9 | 
1 files changed, 5 insertions, 4 deletions
| diff --git a/src/librc/librc-depend.c b/src/librc/librc-depend.c index 1718e22d..22470368 100644 --- a/src/librc/librc-depend.c +++ b/src/librc/librc-depend.c @@ -743,7 +743,7 @@ bool rc_deptree_update (void)  	char **config = NULL;  	int retval = true;  	FILE *fp; -	rc_depinfo_t *deptree; +	rc_depinfo_t *deptree = NULL;  	rc_depinfo_t *depinfo;  	rc_depinfo_t *di;  	rc_depinfo_t *last_depinfo = NULL; @@ -768,12 +768,11 @@ bool rc_deptree_update (void)  	if (! (fp = popen (GENDEP, "r")))  		return (false); -	deptree = xzalloc (sizeof (*deptree));  	while ((line = rc_getline (fp)))  	{  		depends = line;  		service = strsep (&depends, " "); -		if (! service) +		if (! service || ! *service)  			goto next;  		type = strsep (&depends, " "); @@ -786,7 +785,9 @@ bool rc_deptree_update (void)  		if (! depinfo)  		{ -			if (! last_depinfo->service) +			if (! last_depinfo) +				deptree = depinfo = xzalloc (sizeof (*depinfo)); +			else if (! last_depinfo->service)  				depinfo = last_depinfo;  			else  			{ | 
