diff options
| author | Christian Ruppert <idl0r@gentoo.org> | 2011-07-13 21:32:13 +0200 | 
|---|---|---|
| committer | Christian Ruppert <idl0r@gentoo.org> | 2011-07-13 21:32:13 +0200 | 
| commit | a74382d9cb3d7f024efca46f2befb49e35c40758 (patch) | |
| tree | b087a4330fcc2f70c5108e113e966f1edff03d63 /src/librc | |
| parent | fdaf1c65cdcba2d9b83e02cc0d08fb6dbbd80a80 (diff) | |
| download | openrc-a74382d9cb3d7f024efca46f2befb49e35c40758.tar.xz | |
Fix rc_service_value_get() to return multiple lines as well
As introduced in bug 372547 using service_get_value() in the init scripts
or using rc_service_value_get() directly will only return one line.
This patch fixes it by using the new rc_getfile() function, it returns even
multiple lines. We're still using a char *, so the lines will be appended
instead of added into new element.
X-Gentoo-Bug: 372547
X-Gentoo-Bug-URL: http://bugs.gentoo.org/372547
Diffstat (limited to 'src/librc')
| -rw-r--r-- | src/librc/librc.c | 10 | 
1 files changed, 3 insertions, 7 deletions
| diff --git a/src/librc/librc.c b/src/librc/librc.c index a6ff0fe6..98765d84 100644 --- a/src/librc/librc.c +++ b/src/librc/librc.c @@ -767,19 +767,15 @@ librc_hidden_def(rc_service_state)  char *  rc_service_value_get(const char *service, const char *option)  { -	FILE *fp; -	char *line = NULL; +	char *buffer = NULL;  	size_t len = 0;  	char file[PATH_MAX];  	snprintf(file, sizeof(file), RC_SVCDIR "/options/%s/%s",  	    service, option); -	if ((fp = fopen(file, "r"))) { -		rc_getline(&line, &len, fp); -		fclose(fp); -	} +	rc_getfile(file, &buffer, &len); -	return line; +	return buffer;  }  librc_hidden_def(rc_service_value_get) | 
