[systemd-devel] [PATCH] config_parse_set_status: put signals in the correct set
Michael Olbrich
m.olbrich at pengutronix.de
Fri Jan 30 00:49:55 PST 2015
This was broken when the code was rearranged in "1e2fd62d70ff
core/load-fragment.c: correct argument sign and split up long lines"
---
src/core/load-fragment.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c
index 516731aba26c..571bb64b7824 100644
--- a/src/core/load-fragment.c
+++ b/src/core/load-fragment.c
@@ -3150,6 +3150,7 @@ int config_parse_set_status(
FOREACH_WORD(word, l, rvalue, state) {
_cleanup_free_ char *temp;
int val;
+ Set **set;
temp = strndup(word, l);
if (!temp)
@@ -3162,21 +3163,23 @@ int config_parse_set_status(
if (val <= 0) {
log_syntax(unit, LOG_ERR, filename, line, -val,
"Failed to parse value, ignoring: %s", word);
- return 0;
+ continue;
}
+ set = &status_set->signal;
} else {
if (val < 0 || val > 255) {
log_syntax(unit, LOG_ERR, filename, line, ERANGE,
"Value %d is outside range 0-255, ignoring", val);
continue;
}
+ set = &status_set->status;
}
- r = set_ensure_allocated(&status_set->status, NULL);
+ r = set_ensure_allocated(set, NULL);
if (r < 0)
return log_oom();
- r = set_put(status_set->status, INT_TO_PTR(val));
+ r = set_put(*set, INT_TO_PTR(val));
if (r < 0) {
log_syntax(unit, LOG_ERR, filename, line, -r,
"Unable to store: %s", word);
--
2.1.4
More information about the systemd-devel
mailing list