From 1045c786246658f5d8e289d46cb4bdfc87655c71 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Sat, 2 Apr 2005 00:13:27 +0000 Subject: r6174: Fixup T2 open call - we were returning 2 bytes short. Jeremy. (This used to be commit 0c7de7615bf0edbb36a3afee445db13a71e26d2e) --- source3/smbd/reply.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'source3/smbd/reply.c') diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index aef9755122..22cb599195 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -1295,7 +1295,17 @@ int reply_open_and_X(connection_struct *conn, char *inbuf,char *outbuf,int lengt END_PROFILE(SMBopenX); return ERROR_NT(NT_STATUS_OBJECT_PATH_NOT_FOUND); } - + + /* Strange open mode mapping. */ + if (smb_ofun == 0) { + if (GET_OPEN_MODE(smb_mode) == DOS_OPEN_EXEC) { + smb_ofun = FILE_EXISTS_FAIL | FILE_CREATE_IF_NOT_EXIST; + } else { + END_PROFILE(SMBopenX); + return ERROR_FORCE_DOS(ERRDOS, ERRbadaccess); + } + } + fsp = open_file_shared(conn,fname,&sbuf,smb_mode,smb_ofun,(uint32)smb_attr, oplock_request, &rmode,&smb_action); -- cgit