From 6dbaeaf5068ef80f4c3f6d378ed546c3f6daaf89 Mon Sep 17 00:00:00 2001 From: Yaroslav Chvanov Date: Mon, 31 Jan 2022 19:01:45 +0300 Subject: [PATCH] steelseries: fix a memory leak Found by valgrind. I also feel that there is another memory leak of the same nature a bit higher in `init_data_hidpp10`. Introduced by me. :^) --- src/libratbag-data.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/libratbag-data.c b/src/libratbag-data.c index 10389ffb..6b8415c1 100644 --- a/src/libratbag-data.c +++ b/src/libratbag-data.c @@ -214,7 +214,8 @@ init_data_steelseries(struct ratbag *ratbag, { const char *group = "Driver/steelseries"; GError *error = NULL; - _cleanup_(freep) char *str = NULL; + _cleanup_(freep) char *dpi_range = NULL; + _cleanup_(freep) char *quirk = NULL; int num; data->steelseries.device_version = -1; @@ -244,13 +245,13 @@ init_data_steelseries(struct ratbag *ratbag, if (error) g_error_free(error); - str = g_key_file_get_string(keyfile, group, "DpiRange", NULL); - if (str) { - data->steelseries.dpi_range = dpi_range_from_string(str); + dpi_range = g_key_file_get_string(keyfile, group, "DpiRange", NULL); + if (dpi_range) { + data->steelseries.dpi_range = dpi_range_from_string(dpi_range); } else { - str = g_key_file_get_string(keyfile, group, "DpiList", NULL); - if (str) - data->steelseries.dpi_list = dpi_list_from_string(str); + dpi_range = g_key_file_get_string(keyfile, group, "DpiList", NULL); + if (dpi_range) + data->steelseries.dpi_list = dpi_list_from_string(dpi_range); } error = NULL; @@ -260,11 +261,11 @@ init_data_steelseries(struct ratbag *ratbag, if (error) g_error_free(error); - str = g_key_file_get_string(keyfile, group, "Quirk", NULL); - if (str) { - if (streq(str, "Rival100")) + quirk = g_key_file_get_string(keyfile, group, "Quirk", NULL); + if (quirk) { + if (streq(quirk, "Rival100")) data->steelseries.quirk = STEELSERIES_QUIRK_RIVAL100; - if (streq(str, "SenseiRAW")) + if (streq(quirk, "SenseiRAW")) data->steelseries.quirk = STEELSERIES_QUIRK_SENSEIRAW; } }