tmpfiles: fix memory leak in arg_exclude_prefixes
When using the `--image` or `-E` options, `arg_exclude_prefixes` is extended via the `exclude_default_prefixes` function, which calls `strv_extend_strv`, adding values using `strdup` that must be freed on exit. Also changing `arg_include_prefixes` to use the same model, although there is no leak here.
This commit is contained in:
committed by
Lennart Poettering
parent
4bcd606815
commit
7f13af72f8
@@ -218,8 +218,8 @@ typedef struct Context {
|
||||
Set *unix_sockets;
|
||||
} Context;
|
||||
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_include_prefixes, freep);
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_exclude_prefixes, freep);
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_include_prefixes, strv_freep);
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_exclude_prefixes, strv_freep);
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_root, freep);
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_image, freep);
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_image_policy, image_policy_freep);
|
||||
@@ -4129,12 +4129,12 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
break;
|
||||
|
||||
case ARG_PREFIX:
|
||||
if (strv_push(&arg_include_prefixes, optarg) < 0)
|
||||
if (strv_extend(&arg_include_prefixes, optarg) < 0)
|
||||
return log_oom();
|
||||
break;
|
||||
|
||||
case ARG_EXCLUDE_PREFIX:
|
||||
if (strv_push(&arg_exclude_prefixes, optarg) < 0)
|
||||
if (strv_extend(&arg_exclude_prefixes, optarg) < 0)
|
||||
return log_oom();
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user