Hi Vincius. > Core bluetoothd doesn't need to have a reference to the link key list, > so we pass a reference to the list and free it as soon as possible. If any > user need to keep a copy of that list around, they need to copy it. This makes > the memory management more consistent. > --- > plugins/hciops.c | 14 +++++++++++++- > src/adapter.c | 6 +++--- > 2 files changed, 16 insertions(+), 4 deletions(-) > > diff --git a/plugins/hciops.c b/plugins/hciops.c > index 207e187..56daf0d 100644 > --- a/plugins/hciops.c > +++ b/plugins/hciops.c > @@ -3450,6 +3450,7 @@ static int hciops_restore_powered(int index) > static int hciops_load_keys(int index, GSList *keys, gboolean debug_keys) > { > struct dev_info *dev = &devs[index]; > + GSList *l, *n, *new; > > DBG("hci%d keys %d debug_keys %d", index, g_slist_length(keys), > debug_keys); > @@ -3457,7 +3458,18 @@ static int hciops_load_keys(int index, GSList *keys, gboolean debug_keys) > if (dev->keys != NULL) > return -EEXIST; > > - dev->keys = keys; > + new = g_slist_copy(keys); > + > + for (n = new, l = keys; l && n; l = l->next, n = n->next) { > + struct link_key_info *orig; > + > + orig = l->data; > + > + n->data = g_malloc0(sizeof(*orig) + orig->dlen); > + memcpy(n->data, orig, sizeof(*orig) + orig->dlen); you don't need to add a memset via g_malloc0 here. And do we really not wanna check the memory allocation here? Regards Marcel -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html