mirror of
https://github.com/systemd/systemd.git
synced 2026-08-04 15:10:33 +00:00
journalctl: erase verify key before free
Even optarg is erased, copied string was not erased. Let's erase the copied key for safety.
This commit is contained in:
@@ -96,7 +96,7 @@ static ImagePolicy *arg_image_policy = NULL;
|
||||
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_file, strv_freep);
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_facilities, set_freep);
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_verify_key, freep);
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_verify_key, erase_and_freep);
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_syslog_identifier, strv_freep);
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_exclude_identifier, strv_freep);
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_system_units, strv_freep);
|
||||
@@ -689,9 +689,11 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
break;
|
||||
|
||||
case ARG_VERIFY_KEY:
|
||||
r = free_and_strdup(&arg_verify_key, optarg);
|
||||
if (r < 0)
|
||||
return r;
|
||||
erase_and_free(arg_verify_key);
|
||||
arg_verify_key = strdup(optarg);
|
||||
if (!arg_verify_key)
|
||||
return log_oom();
|
||||
|
||||
/* Use memset not explicit_bzero() or similar so this doesn't look confusing
|
||||
* in ps or htop output. */
|
||||
memset(optarg, 'x', strlen(optarg));
|
||||
|
||||
Reference in New Issue
Block a user