aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoic Poulain <loic.poulain@linaro.org>2021-08-03 18:05:18 +0200
committerAleksander Morgado <aleksander@aleksander.es>2021-08-04 07:40:09 +0000
commit9e5e699227f43e3dd64933dc96508b88b1a76bba (patch)
tree825a2febf1df318571fde7d6e472202cd8060539
parentb91bf1e3a648080b00d6a2fde2b5798a658027eb (diff)
kernel-device-generic: Fix ptr_array_add_sysfs_attribute_link_basename
A pointer can not be used anymore after its ownership has been transfered using the g_steal_pointer function (pointer is nullified). In this function, g_steal_pointer() is used when inserting 'value' inside the array but can also be subsequently used when dumping 'value' to 'out_value' via g_strdup(). Fix that with simple reordering. Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
-rw-r--r--src/kerneldevice/mm-kernel-device-generic.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/kerneldevice/mm-kernel-device-generic.c b/src/kerneldevice/mm-kernel-device-generic.c
index 94f969f9..bfdd8c37 100644
--- a/src/kerneldevice/mm-kernel-device-generic.c
+++ b/src/kerneldevice/mm-kernel-device-generic.c
@@ -238,10 +238,12 @@ ptr_array_add_sysfs_attribute_link_basename (GPtrArray *array,
g_assert (array && sysfs_path && attribute);
value = read_sysfs_attribute_link_basename (sysfs_path, attribute);
- if (value && !g_ptr_array_find_with_equal_func (array, value, g_str_equal, NULL))
- g_ptr_array_add (array, g_steal_pointer (&value));
+
if (out_value)
*out_value = g_strdup (value);
+ if (value && !g_ptr_array_find_with_equal_func (array, value, g_str_equal, NULL))
+ g_ptr_array_add (array, g_steal_pointer (&value));
+
}
static void