diff options
author | Jeremy Allison <jra@samba.org> | 2010-08-26 16:46:45 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2010-08-26 16:46:45 -0700 |
commit | 5115f789c007a155e34505852d847b99b7f4c886 (patch) | |
tree | ca19e4287fff380c568e3ae43b98e23aa7199a9e /source3/smbd/trans2.c | |
parent | 338184fb3a3869f81ead82dcc477c87d858334d3 (diff) | |
download | samba-5115f789c007a155e34505852d847b99b7f4c886.tar.gz samba-5115f789c007a155e34505852d847b99b7f4c886.tar.xz samba-5115f789c007a155e34505852d847b99b7f4c886.zip |
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.
Diffstat (limited to 'source3/smbd/trans2.c')
-rw-r--r-- | 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 24d66a61879..4ecf08a479e 100644 --- a/source3/smbd/trans2.c +++ b/source3/smbd/trans2.c @@ -6799,6 +6799,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); @@ -6851,7 +6852,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 @@ -6880,7 +6880,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; |