From a74382d9cb3d7f024efca46f2befb49e35c40758 Mon Sep 17 00:00:00 2001 From: Christian Ruppert Date: Wed, 13 Jul 2011 21:32:13 +0200 Subject: 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 --- src/librc/librc.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'src') 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) -- cgit v1.2.3