From 5a5d57d76b633ef398a68e12be14d828c252e791 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Thu, 26 Aug 2010 16:49:21 -0700 Subject: [PATCH] Fix bug #7651 - mknod and mkfifo fails with "No such file or directory" Ensure we check the correct stat struct once we've created the special fix. Thanks to izh1979@gmail.com for pointing out the bug. Jeremy. --- source3/smbd/trans2.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c index fb4d46b..84139da 100644 --- a/source3/smbd/trans2.c +++ b/source3/smbd/trans2.c @@ -6594,6 +6594,7 @@ static NTSTATUS smb_set_file_unix_basic(connection_struct *conn, files_struct *all_fsps = NULL; bool modify_mtime = true; struct file_id id; + struct smb_filename *smb_fname_tmp = NULL; SMB_STRUCT_STAT sbuf; ZERO_STRUCT(ft); @@ -6646,7 +6647,6 @@ static NTSTATUS smb_set_file_unix_basic(connection_struct *conn, sbuf = smb_fname->st; if (!VALID_STAT(sbuf)) { - struct smb_filename *smb_fname_tmp = NULL; /* * The only valid use of this is to create character and block * devices, and named pipes. This is deprecated (IMHO) and @@ -6675,7 +6675,7 @@ static NTSTATUS smb_set_file_unix_basic(connection_struct *conn, } sbuf = smb_fname_tmp->st; - TALLOC_FREE(smb_fname_tmp); + smb_fname = smb_fname_tmp; /* Ensure we don't try and change anything else. */ raw_unixmode = SMB_MODE_NO_CHANGE; -- 1.7.1