assert(rvalue);
assert(u);
- /* Let's not bother with anything that is too long */
- if (strlen(rvalue) >= PATH_MAX) {
- log_syntax(unit, fatal ? LOG_ERR : LOG_WARNING, filename, line, 0,
- "%s value too long%s.",
- lvalue, fatal ? "" : ", ignoring");
- return fatal ? -ENAMETOOLONG : 0;
- }
-
- r = unit_full_printf(u, rvalue, &k);
+ r = unit_path_printf(u, rvalue, &k);
if (r < 0) {
log_syntax(unit, fatal ? LOG_ERR : LOG_WARNING, filename, line, r,
"Failed to resolve unit specifiers in '%s'%s: %m",
return 0;
}
- r = unit_full_printf(u, word, &k);
+ r = unit_path_printf(u, word, &k);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to resolve unit specifiers in '%s', ignoring: %m", word);
if (ltype != SOCKET_SOCKET) {
_cleanup_free_ char *k = NULL;
- r = unit_full_printf(UNIT(s), rvalue, &k);
+ r = unit_path_printf(UNIT(s), rvalue, &k);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in '%s', ignoring: %m", rvalue);
return 0;
} else if (streq(lvalue, "ListenNetlink")) {
_cleanup_free_ char *k = NULL;
- r = unit_full_printf(UNIT(s), rvalue, &k);
+ r = unit_path_printf(UNIT(s), rvalue, &k);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in '%s', ignoring: %m", rvalue);
return 0;
} else {
_cleanup_free_ char *k = NULL;
- r = unit_full_printf(UNIT(s), rvalue, &k);
+ r = unit_path_printf(UNIT(s), rvalue, &k);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in '%s', ignoring: %m", rvalue);
return 0;
f++;
}
- r = unit_full_printf(u, f, &path);
+ r = unit_path_printf(u, f, &path);
if (r < 0) {
log_syntax(unit, ignore ? LOG_WARNING : LOG_ERR, filename, line, r,
"Failed to resolve unit specifiers in '%s'%s: %m",
if (r < 0)
return ignore ? 0 : -ENOEXEC;
- r = unit_full_printf(u, word, &resolved);
+ r = unit_path_printf(u, word, &resolved);
if (r < 0) {
log_syntax(unit, ignore ? LOG_WARNING : LOG_ERR, filename, line, r,
"Failed to resolve unit specifiers in %s%s: %m",
if (n) {
_cleanup_free_ char *resolved = NULL;
- r = unit_full_printf(u, n, &resolved);
+ r = unit_fd_printf(u, n, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in '%s', ignoring: %m", n);
return 0;
} else if ((n = startswith(rvalue, "file:"))) {
_cleanup_free_ char *resolved = NULL;
- r = unit_full_printf(u, n, &resolved);
+ r = unit_path_printf(u, n, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in '%s', ignoring: %m", n);
return 0;
return 0;
}
- r = unit_full_printf(u, unescaped, &resolved);
+ r = unit_full_printf_full(u, unescaped, EXEC_STDIN_DATA_MAX, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to resolve unit specifiers in '%s', ignoring: %m", unescaped);
n = startswith(rvalue, "fd:");
if (n) {
- r = unit_full_printf(u, n, &resolved);
+ r = unit_fd_printf(u, n, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in %s: %m", n);
return 0;
} else if ((n = startswith(rvalue, "file:"))) {
- r = unit_full_printf(u, n, &resolved);
+ r = unit_path_printf(u, n, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in %s, ignoring: %m", n);
return 0;
} else if ((n = startswith(rvalue, "append:"))) {
- r = unit_full_printf(u, n, &resolved);
+ r = unit_path_printf(u, n, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in %s, ignoring: %m", n);
return 0;
} else if ((n = startswith(rvalue, "truncate:"))) {
- r = unit_full_printf(u, n, &resolved);
+ r = unit_path_printf(u, n, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in %s, ignoring: %m", n);
return 0;
return 0;
}
- r = unit_full_printf(UNIT(p), rvalue, &k);
+ r = unit_path_printf(UNIT(p), rvalue, &k);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in %s, ignoring: %m", rvalue);
return 0;
return 0;
}
- r = unit_full_printf(UNIT(s), rvalue, &p);
+ r = unit_fd_printf(UNIT(s), rvalue, &p);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in '%s', ignoring: %m", rvalue);
return 0;
assert(rvalue);
assert(u);
- r = unit_full_printf(u, rvalue, &k);
+ r = unit_full_printf_full(u, rvalue, SD_BUS_MAXIMUM_NAME_LENGTH, &k);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in %s, ignoring: %m", rvalue);
return 0;
} else {
_cleanup_free_ char *k = NULL;
- r = unit_full_printf(u, rvalue, &k);
+ r = unit_path_printf(u, rvalue, &k);
if (r < 0) {
log_syntax(unit, missing_ok ? LOG_WARNING : LOG_ERR, filename, line, r,
"Failed to resolve unit specifiers in working directory path '%s'%s: %m",
return 0;
}
- r = unit_full_printf(u, rvalue, &n);
+ r = unit_full_printf_full(u, rvalue, PATH_MAX, &n);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in '%s', ignoring: %m", rvalue);
return 0;
return 0;
if (u) {
- r = unit_full_printf(u, word, &resolved);
+ r = unit_env_printf(u, word, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to resolve unit specifiers in %s, ignoring: %m", word);
break;
if (u) {
- r = unit_full_printf(u, word, &k);
+ r = unit_env_printf(u, word, &k);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to resolve specifiers in %s, ignoring: %m", word);
break;
if (u) {
- r = unit_full_printf(u, word, &k);
+ r = unit_env_printf(u, word, &k);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to resolve unit specifiers in %s, ignoring: %m", word);
return 0;
}
- r = unit_full_printf(u, rvalue, &k);
+ r = unit_full_printf_full(u, rvalue, NAME_MAX, &k);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in %s, ignoring: %m", rvalue);
return 0;
if (negate)
rvalue++;
- r = unit_full_printf(u, rvalue, &p);
+ r = unit_path_printf(u, rvalue, &p);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in %s, ignoring: %m", rvalue);
return 0;
if (r == 0)
return 0;
- r = unit_full_printf(u, word, &resolved);
+ r = unit_path_printf(u, word, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in '%s', ignoring: %m", word);
continue;
return 0;
}
- r = unit_full_printf(userdata, path, &resolved);
+ r = unit_path_printf(userdata, path, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to resolve unit specifiers in '%s', ignoring: %m", path);
return 0;
}
- r = unit_full_printf(userdata, path, &resolved);
+ r = unit_path_printf(userdata, path, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to resolve unit specifiers in '%s', ignoring: %m", path);
return 0;
}
- r = unit_full_printf(userdata, path, &resolved);
+ r = unit_path_printf(userdata, path, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to resolve unit specifiers in '%s', ignoring: %m", path);
return 0;
}
- r = unit_full_printf(userdata, path, &resolved);
+ r = unit_path_printf(userdata, path, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to resolve unit specifiers in '%s', ignoring: %m", path);
return 0;
}
- r = unit_full_printf(userdata, path, &resolved);
+ r = unit_path_printf(userdata, path, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to resolve unit specifiers in '%s', ignoring: %m", path);
return 0;
}
- r = unit_full_printf(userdata, path, &resolved);
+ r = unit_path_printf(userdata, path, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to resolve unit specifiers in '%s', ignoring: %m", path);
if (r == 0)
return 0;
- r = unit_full_printf(u, word, &k);
+ r = unit_path_printf(u, word, &k);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to resolve unit specifiers in \"%s\", ignoring: %m", word);
return 0;
}
- r = unit_full_printf(u, word, &k);
+ r = unit_cred_printf(u, word, &k);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in \"%s\", ignoring: %m", word);
return 0;
return 0;
}
- r = unit_full_printf(u, word, &k);
+ r = unit_cred_printf(u, word, &k);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in \"%s\", ignoring: %m", word);
return 0;
if (!q)
return log_oom();
} else {
- r = unit_full_printf(u, p, &q);
+ r = unit_path_printf(u, p, &q);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in \"%s\", ignoring: %m", p);
return 0;
w++;
}
- r = unit_full_printf(u, w, &resolved);
+ r = unit_path_printf(u, w, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in %s: %m", w);
continue;
continue;
}
- r = unit_full_printf(u, path, &resolved);
+ r = unit_path_printf(u, path, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in %s, ignoring: %m", path);
continue;
if (r == 0)
break;
- r = unit_full_printf(u, source, &sresolved);
+ r = unit_full_printf_full(u, source, PATH_MAX, &sresolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to resolve unit specifiers in \"%s\", ignoring: %m", source);
continue;
}
- r = unit_full_printf(u, destination, &dresolved);
+ r = unit_path_printf(u, destination, &dresolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to resolve specifiers in \"%s\", ignoring: %m", destination);
s++;
}
- r = unit_full_printf(u, s, &sresolved);
+ r = unit_path_printf(u, s, &sresolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to resolve unit specifiers in \"%s\", ignoring: %m", s);
continue;
}
- r = unit_full_printf(u, second, &dresolved);
+ r = unit_path_printf(u, second, &dresolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to resolve specifiers in \"%s\", ignoring: %m", second);
s++;
}
- r = unit_full_printf(u, s, &sresolved);
+ r = unit_path_printf(u, s, &sresolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to resolve unit specifiers in \"%s\", ignoring: %m", s);
return 0;
}
- r = unit_full_printf(u, rvalue, &k);
+ r = unit_path_printf(u, rvalue, &k);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in '%s', ignoring: %m", rvalue);
return 0;
return 0;
}
- r = unit_full_printf(u, rvalue, &resolved);
+ r = unit_path_printf(u, rvalue, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in '%s', ignoring: %m", rvalue);
return 0;
return 0;
}
- r = unit_full_printf(u, rvalue, &resolved);
+ r = unit_path_printf(u, rvalue, &resolved);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in '%s', ignoring: %m", rvalue);
return 0;