From e1f4942a07ef20f3540a47dd08a7a64dbd469398 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Thu, 11 Apr 2013 15:24:55 +0200 Subject: lib: Add cp_smb_filename The interface of copy_smb_filename is just silly ;-) Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- source3/lib/filename_util.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'source3/lib') diff --git a/source3/lib/filename_util.c b/source3/lib/filename_util.c index 9a6ab2b34a..67fa1a98f2 100644 --- a/source3/lib/filename_util.c +++ b/source3/lib/filename_util.c @@ -161,6 +161,45 @@ const char *fsp_fnum_dbg(const struct files_struct *fsp) return str; } +struct smb_filename *cp_smb_filename(TALLOC_CTX *mem_ctx, + const struct smb_filename *in) +{ + struct smb_filename *out; + + /* stream_name must always be NULL if there is no stream. */ + if (in->stream_name) { + SMB_ASSERT(in->stream_name[0] != '\0'); + } + + out = talloc_zero(mem_ctx, struct smb_filename); + if (out == NULL) { + return NULL; + } + if (in->base_name != NULL) { + out->base_name = talloc_strdup(out, in->base_name); + if (out->base_name == NULL) { + goto fail; + } + } + if (in->stream_name != NULL) { + out->stream_name = talloc_strdup(out, in->stream_name); + if (out->stream_name == NULL) { + goto fail; + } + } + if (in->original_lcomp != NULL) { + out->original_lcomp = talloc_strdup(out, in->original_lcomp); + if (out->original_lcomp == NULL) { + goto fail; + } + } + out->st = in->st; + return out; +fail: + TALLOC_FREE(out); + return NULL; +} + NTSTATUS copy_smb_filename(TALLOC_CTX *ctx, const struct smb_filename *smb_fname_in, struct smb_filename **smb_fname_out) -- cgit