core: Fix assertion with empty Exec*= paths
authorMartin Pitt <martin.pitt@ubuntu.com>
Thu, 14 May 2015 07:06:40 +0000 (09:06 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 15 May 2015 18:02:44 +0000 (20:02 +0200)
commit35b1078e1c375df244e19961792aeb78ca34bb54
treead143847d324eeeb868f79674292bfa078840d85
parent6b71bab08dc6c92156263daba0e969313eed1323
core: Fix assertion with empty Exec*= paths

An Exec*= line with whitespace after modifiers, like

  ExecStart=- /bin/true

is considered to have an empty command path. This is as specified, but causes
systemd to crash with

  Assertion 'skip < l' failed at ../src/core/load-fragment.c:607, function config_parse_exec(). Aborting.
  Aborted (core dumped)

Fix this by logging an error instead and ignoring the invalid line.

Add corresponding test cases. Also add a test case for a completely empty value
which resets the command list.

https://launchpad.net/bugs/1454173
src/core/load-fragment.c
src/test/test-unit-file.c