[systemd-devel] [PATCH] config_parse_set_status: put signals in the correct set

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Sun Feb 1 14:29:59 PST 2015


On Fri, Jan 30, 2015 at 09:49:55AM +0100, Michael Olbrich wrote:
> This was broken when the code was rearranged in "1e2fd62d70ff
> core/load-fragment.c: correct argument sign and split up long lines"
With this change, the new code is similarly complicated as the old code,
so a (partial) revert would have worked too. But the patch is OK.

Applied.

Zbyszek


> ---
>  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
> 
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel


More information about the systemd-devel mailing list