summaryrefslogtreecommitdiff
path: root/source4/lib/dcom/common/tables.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/lib/dcom/common/tables.c')
-rw-r--r--source4/lib/dcom/common/tables.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/source4/lib/dcom/common/tables.c b/source4/lib/dcom/common/tables.c
index 6b0d99cae3..faf67710e0 100644
--- a/source4/lib/dcom/common/tables.c
+++ b/source4/lib/dcom/common/tables.c
@@ -76,10 +76,13 @@ const void *dcom_proxy_vtable_by_iid(const struct GUID *iid)
NTSTATUS dcom_register_interface(const void *_iface)
{
const struct dcom_interface *iface = _iface;
- struct interface_list *l = talloc_zero_p(interfaces, struct interface_list);
+ struct interface_list *l;
+
+ l = talloc_zero_p(interfaces?interfaces:talloc_autofree_context(),
+ struct interface_list);
l->interface = *iface;
-
+
DLIST_ADD(interfaces, l);
return NT_STATUS_OK;
@@ -88,7 +91,8 @@ NTSTATUS dcom_register_interface(const void *_iface)
NTSTATUS dcom_register_class(const void *_class)
{
const struct dcom_class *class = _class;
- struct class_list *l = talloc_zero_p(classes, struct class_list);
+ struct class_list *l = talloc_zero_p(classes?classes:talloc_autofree_context(),
+ struct class_list);
l->class = *class;