lib/param: avoid talloc_reference() in copy_service()
authorStefan Metzmacher <metze@samba.org>
Wed, 11 Jan 2012 12:47:08 +0000 (13:47 +0100)
committerStefan Metzmacher <metze@samba.org>
Wed, 11 Jan 2012 15:13:50 +0000 (16:13 +0100)
The memory reduction compared of talloc_reference() over talloc_strdup()
is typically very low. As the strings are typically short compared
to the talloc header overhead.

metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Wed Jan 11 16:13:50 CET 2012 on sn-devel-104

lib/param/loadparm.c

index 949c404bf17fed73e9aabc63e9a6aead471df87c..03ee8f34ac6bc82dee7e058a806999c8f1636e47 100644 (file)
@@ -2140,7 +2140,7 @@ static void copy_service(struct loadparm_service *pserviceDest,
                        /* If we already have same option, override it */
                        if (strcmp(pdata->key, data->key) == 0) {
                                talloc_free(pdata->value);
-                               pdata->value = talloc_reference(pdata,
+                               pdata->value = talloc_strdup(pdata,
                                                             data->value);
                                not_added = false;
                                break;
@@ -2151,8 +2151,8 @@ static void copy_service(struct loadparm_service *pserviceDest,
                        paramo = talloc_zero(pserviceDest, struct parmlist_entry);
                        if (paramo == NULL)
                                smb_panic("OOM");
-                       paramo->key = talloc_reference(paramo, data->key);
-                       paramo->value = talloc_reference(paramo, data->value);
+                       paramo->key = talloc_strdup(paramo, data->key);
+                       paramo->value = talloc_strdup(paramo, data->value);
                        DLIST_ADD(pserviceDest->param_opt, paramo);
                }
                data = data->next;