diff options
author | Loic Poulain <loic.poulain@linaro.org> | 2021-08-03 18:05:18 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2021-08-04 07:40:09 +0000 |
commit | 9e5e699227f43e3dd64933dc96508b88b1a76bba (patch) | |
tree | 825a2febf1df318571fde7d6e472202cd8060539 /src/kerneldevice | |
parent | b91bf1e3a648080b00d6a2fde2b5798a658027eb (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>
Diffstat (limited to 'src/kerneldevice')
-rw-r--r-- | src/kerneldevice/mm-kernel-device-generic.c | 6 |
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 |