summaryrefslogtreecommitdiff
path: root/source4/lib/tdr/tdr.c
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2007-12-13 22:46:51 +0100
committerStefan Metzmacher <metze@samba.org>2007-12-21 05:50:07 +0100
commit27b21a386ebeed66dd804a8b2e2256b739e32543 (patch)
tree697a6f4be798dc7c8d1d5d4333b129c9369b4b7d /source4/lib/tdr/tdr.c
parent5e00673a4063c9a51580a36ba1f824bd8ea0de66 (diff)
downloadsamba-27b21a386ebeed66dd804a8b2e2256b739e32543.tar.gz
samba-27b21a386ebeed66dd804a8b2e2256b739e32543.tar.bz2
samba-27b21a386ebeed66dd804a8b2e2256b739e32543.zip
r26439: Require tdr_pull users to specify a smb_iconv convenience context.
(This used to be commit 76fd57be292fb19ae4ede38977732847e6ed8eff)
Diffstat (limited to 'source4/lib/tdr/tdr.c')
-rw-r--r--source4/lib/tdr/tdr.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/source4/lib/tdr/tdr.c b/source4/lib/tdr/tdr.c
index 1a52f10569..f75cac9810 100644
--- a/source4/lib/tdr/tdr.c
+++ b/source4/lib/tdr/tdr.c
@@ -374,7 +374,7 @@ NTSTATUS tdr_pull_DATA_BLOB(struct tdr_pull *tdr, TALLOC_CTX *ctx, DATA_BLOB *bl
struct tdr_push *tdr_push_init(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic)
{
- struct tdr_push *push = talloc_zero(NULL, struct tdr_push);
+ struct tdr_push *push = talloc_zero(mem_ctx, struct tdr_push);
if (push == NULL)
return NULL;
@@ -384,6 +384,18 @@ struct tdr_push *tdr_push_init(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience
return push;
}
+struct tdr_pull *tdr_pull_init(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic)
+{
+ struct tdr_pull *pull = talloc_zero(mem_ctx, struct tdr_pull);
+
+ if (pull == NULL)
+ return NULL;
+
+ pull->iconv_convenience = talloc_reference(pull, ic);
+
+ return pull;
+}
+
NTSTATUS tdr_push_to_fd(int fd, struct smb_iconv_convenience *iconv_convenience, tdr_push_fn_t push_fn, const void *p)
{
struct tdr_push *push = tdr_push_init(NULL, iconv_convenience);