X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fload-fragment.c;h=12079c640fdefbeebca6bceb9752ab0494ae8968;hb=2096e009a790073a934f5cd07d17024d3b199d0b;hp=c8b4b5a9c6f552024ac23febcab29ed9ff1b4c0b;hpb=94959f0fa0c19ae1db0e63d9a5dfc94c660825ba;p=elogind.git diff --git a/src/load-fragment.c b/src/load-fragment.c index c8b4b5a9c..12079c640 100644 --- a/src/load-fragment.c +++ b/src/load-fragment.c @@ -554,6 +554,7 @@ int config_parse_exec( if (!n[0]) { log_error("[%s:%u] Invalid command line, ignoring: %s", filename, line, rvalue); strv_free(n); + free(path); return 0; } @@ -1545,10 +1546,12 @@ int config_parse_unit_condition_path( assert(rvalue); assert(data); - if ((trigger = rvalue[0] == '|')) + trigger = rvalue[0] == '|'; + if (trigger) rvalue++; - if ((negate = rvalue[0] == '!')) + negate = rvalue[0] == '!'; + if (negate) rvalue++; if (!path_is_absolute(rvalue)) { @@ -1556,7 +1559,8 @@ int config_parse_unit_condition_path( return 0; } - if (!(c = condition_new(cond, rvalue, trigger, negate))) + c = condition_new(cond, rvalue, trigger, negate); + if (!c) return -ENOMEM; LIST_PREPEND(Condition, conditions, u->meta.conditions, c);