mirror of
https://gitlab.freedesktop.org/plymouth/plymouth.git
synced 2026-05-08 05:28:01 +02:00
key-file: ply_key_file_get_value returns duplicated memory, don't leak
For some reason I made the same api misdesign with ply_key_file_t that I made when writing GKeyFile...it returns duplicated memory for no good reason. This commit sprinkles frees around.
This commit is contained in:
parent
656444ed26
commit
322a3635fa
2 changed files with 11 additions and 4 deletions
13
src/main.c
13
src/main.c
|
|
@ -296,8 +296,8 @@ load_settings (state_t *state,
|
|||
{
|
||||
ply_key_file_t *key_file = NULL;
|
||||
bool settings_loaded = false;
|
||||
const char *scale_string;
|
||||
const char *splash_string;
|
||||
char *scale_string = NULL;
|
||||
char *splash_string = NULL;
|
||||
|
||||
ply_trace ("Trying to load %s", path);
|
||||
key_file = ply_key_file_new (path);
|
||||
|
|
@ -323,24 +323,27 @@ load_settings (state_t *state,
|
|||
}
|
||||
|
||||
if (isnan (state->splash_delay)) {
|
||||
const char *delay_string;
|
||||
char *delay_string;
|
||||
|
||||
delay_string = ply_key_file_get_value (key_file, "Daemon", "ShowDelay");
|
||||
|
||||
if (delay_string != NULL) {
|
||||
state->splash_delay = atof (delay_string);
|
||||
ply_trace ("Splash delay is set to %lf", state->splash_delay);
|
||||
free (delay_string);
|
||||
}
|
||||
}
|
||||
|
||||
if (isnan (state->device_timeout)) {
|
||||
const char *timeout_string;
|
||||
char *timeout_string;
|
||||
|
||||
timeout_string = ply_key_file_get_value (key_file, "Daemon", "DeviceTimeout");
|
||||
|
||||
if (timeout_string != NULL) {
|
||||
state->device_timeout = atof (timeout_string);
|
||||
ply_trace ("Device timeout is set to %lf", state->device_timeout);
|
||||
|
||||
free (timeout_string);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -348,10 +351,12 @@ load_settings (state_t *state,
|
|||
|
||||
if (scale_string != NULL) {
|
||||
ply_set_device_scale (strtoul (scale_string, NULL, 0));
|
||||
free (scale_string);
|
||||
}
|
||||
|
||||
settings_loaded = true;
|
||||
out:
|
||||
free (splash_string);
|
||||
ply_key_file_free (key_file);
|
||||
|
||||
return settings_loaded;
|
||||
|
|
|
|||
|
|
@ -662,6 +662,8 @@ create_plugin (ply_key_file_t *key_file)
|
|||
ply_trace ("unknown progress function %s, defaulting to linear", progress_function);
|
||||
plugin->progress_function = PROGRESS_FUNCTION_TYPE_LINEAR;
|
||||
}
|
||||
|
||||
free (progress_function);
|
||||
}
|
||||
|
||||
plugin->views = ply_list_new ();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue