[systemd-devel] tmpfiles.d specifier support on "argument" when operating on files
Lennart Poettering
lennart at poettering.net
Wed Feb 18 02:10:52 PST 2015
On Tue, 17.02.15 17:35, Cristian RodrÃguez (crrodriguez at opensuse.org) wrote:
Please fix this for all arguments, not just symlinks.
> diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
> index c948d4d..1b35b8e 100644
> --- a/src/tmpfiles/tmpfiles.c
> +++ b/src/tmpfiles/tmpfiles.c
> @@ -1590,6 +1590,12 @@ static int parse_line(const char *fname, unsigned line, const char *buffer) {
> i.argument = strappend("/usr/share/factory/", i.path);
> if (!i.argument)
> return log_oom();
> + } else {
> + r = specifier_printf(i.argument,
> specifier_table, NULL, &i.argument);
Here's a memory leak, you need to free the old i.argument.
Indentation! Please have a look at CODING_STYLE. You need to indent by
8ch. 4ch indenting is not acceptable.
> + if (r < 0) {
> + log_error("[%s:%u] Failed to replace specifiers: %s", fname, line, path);
> + return r;
> + }
A good candidate for log_error_errno().
Lennart
--
Lennart Poettering, Red Hat
More information about the systemd-devel
mailing list