From 8da7fc83aa3e9fd868c6a8da9261b72dae7d29e7 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Oct 03 2018 19:34:53 +0000 Subject: merge_ent_array_duplicates: Only use values if valid Merges: https://pagure.io/libuser/issue/22 Don't attempt to dereference a NULL pointer --- diff --git a/lib/user.c b/lib/user.c index ad2bb09..2500565 100644 --- a/lib/user.c +++ b/lib/user.c @@ -691,10 +691,13 @@ merge_ent_array_duplicates(GPtrArray *array) while (attributes != NULL) { attr = (const char *)attributes->data; values = lu_ent_get_current(current, attr); - for (j = 0; j < values->n_values; j++) { - value = g_value_array_get_nth(values, - j); - lu_ent_add_current(saved, attr, value); + if (values != NULL) { + for (j = 0; j < values->n_values; j++) { + value = g_value_array_get_nth( + values, + j); + lu_ent_add_current(saved, attr, value); + } } attributes = g_list_next(attributes); } @@ -705,10 +708,13 @@ merge_ent_array_duplicates(GPtrArray *array) while (attributes != NULL) { attr = (const char *)attributes->data; values = lu_ent_get(current, attr); - for (j = 0; j < values->n_values; j++) { - value = g_value_array_get_nth(values, - j); - lu_ent_add(saved, attr, value); + if (values != NULL) { + for (j = 0; j < values->n_values; j++) { + value = g_value_array_get_nth( + values, + j); + lu_ent_add(saved, attr, value); + } } attributes = g_list_next(attributes); }