diff options
Diffstat (limited to 'source3/smbd/smbXsrv_open.c')
-rw-r--r-- | source3/smbd/smbXsrv_open.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/source3/smbd/smbXsrv_open.c b/source3/smbd/smbXsrv_open.c index 99ca2abc320..e32602c7d61 100644 --- a/source3/smbd/smbXsrv_open.c +++ b/source3/smbd/smbXsrv_open.c @@ -727,7 +727,7 @@ static NTSTATUS smbXsrv_open_global_store(struct smbXsrv_open_global0 *global) global_blob.seqnum += 1; global_blob.info.info0 = global; - ndr_err = ndr_push_struct_blob(&blob, global->db_rec, &global_blob, + ndr_err = ndr_push_struct_blob(&blob, talloc_tos(), &global_blob, (ndr_push_flags_fn_t)ndr_push_smbXsrv_open_globalB); if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { status = ndr_map_error2ntstatus(ndr_err); @@ -740,6 +740,7 @@ static NTSTATUS smbXsrv_open_global_store(struct smbXsrv_open_global0 *global) val = make_tdb_data(blob.data, blob.length); status = dbwrap_record_store(global->db_rec, val, TDB_REPLACE); + TALLOC_FREE(blob.data); if (!NT_STATUS_IS_OK(status)) { DEBUG(1,("smbXsrv_open_global_store: key '%s' store - %s\n", tdb_data_dbg(key), |