From 8e04c69e027260e7e1f0a4cf3e58e31ed4084d8b Mon Sep 17 00:00:00 2001 From: Tim Prouty Date: Mon, 20 Jul 2009 14:32:32 -0700 Subject: [PATCH] s3: Add some asserts to the filename util functions In the smb_filename struct stream_name must equal NULL if there is no stream name. These asserts should catch any future offenders of this invariant early. --- source3/smbd/filename_util.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/source3/smbd/filename_util.c b/source3/smbd/filename_util.c index 1a7af714de0..867709a3737 100644 --- a/source3/smbd/filename_util.c +++ b/source3/smbd/filename_util.c @@ -29,6 +29,9 @@ NTSTATUS get_full_smb_filename(TALLOC_CTX *ctx, char **full_name) { if (smb_fname->stream_name) { + /* stream_name must always be NULL if there is no stream. */ + SMB_ASSERT(smb_fname->stream_name[0] != '\0'); + *full_name = talloc_asprintf(ctx, "%s%s", smb_fname->base_name, smb_fname->stream_name); } else { @@ -134,6 +137,10 @@ NTSTATUS copy_smb_filename(TALLOC_CTX *ctx, const struct smb_filename *smb_fname_in, struct smb_filename **smb_fname_out) { + /* stream_name must always be NULL if there is no stream. */ + if (smb_fname_in->stream_name) { + SMB_ASSERT(smb_fname_in->stream_name[0] != '\0'); + } *smb_fname_out = talloc_zero(ctx, struct smb_filename); if (*smb_fname_out == NULL) { @@ -174,6 +181,11 @@ NTSTATUS copy_smb_filename(TALLOC_CTX *ctx, ***************************************************************************/ bool is_ntfs_stream_smb_fname(const struct smb_filename *smb_fname) { + /* stream_name must always be NULL if there is no stream. */ + if (smb_fname->stream_name) { + SMB_ASSERT(smb_fname->stream_name[0] != '\0'); + } + if (lp_posix_pathnames()) { return false; } -- 2.11.4.GIT