The comment suggests we validate paths here, but we actually didn't, we
only validated filenames. Let' fix that.
(Note this still lets any kind of paths through, including those with
".." and stuff, this is not a normalization check after all)
(cherry picked from commit
108144adea838b281fe1f60dfa75542fe4c82d4b)
return ignore ? 0 : -ENOEXEC;
}
- if (!path_is_absolute(path) && !filename_is_valid(path)) {
+ if (!(path_is_absolute(path) ? path_is_valid(path) : filename_is_valid(path))) {
log_syntax(unit, ignore ? LOG_WARNING : LOG_ERR, filename, line, 0,
"Neither a valid executable name nor an absolute path%s: %s",
ignore ? ", ignoring" : "", path);