From 38087ccb4071bfff29801026e2bf5c47565305b4 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sat, 5 Oct 1996 02:54:37 +0000 Subject: - use workgroup from smb.conf in smbclient - change debug level on clitar stuff - define MAP_FILE if not defined - ensure we never set authoritative on queries in nmbd - fake a positive response to SMBioctl, apparently this is needed for some WfWg printer drivers - deny file access for non-fcbopen queries when (access_allowed == AREAD && flags == O_RDWR) - add sys_waitpid() (This used to be commit 61e3116e573637d6b5a878eeb8db72831e3c5bd1) --- source3/smbd/reply.c | 7 ++++++- source3/smbd/server.c | 3 ++- source3/smbd/uid.c | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) (limited to 'source3/smbd') diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index 6cf1b031e8..63c0a7027e 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -294,8 +294,13 @@ int reply_unknown(char *inbuf,char *outbuf) int reply_ioctl(char *inbuf,char *outbuf) { DEBUG(3,("ignoring ioctl\n")); - +#if 1 + /* we just say it succeeds and hope its all OK. + some day it would be nice to interpret them individually */ + return set_message(outbuf,1,0,True); +#else return(ERROR(ERRSRV,ERRnosupport)); +#endif } diff --git a/source3/smbd/server.c b/source3/smbd/server.c index a710aef69b..9ad7840465 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -1158,6 +1158,7 @@ void open_file_shared(int fnum,int cnum,char *fname,int share_mode,int ofun, share_pid,fname); if ((access_allowed == AFAIL) || + (!fcbopen && (access_allowed == AREAD && flags == O_RDWR)) || (access_allowed == AREAD && flags == O_WRONLY) || (access_allowed == AWRITE && flags == O_RDONLY)) { DEBUG(2,("Share violation on file (%d,%d,%d,%d,%s) = %d\n", @@ -1586,7 +1587,7 @@ static int sig_cld() DEBUG(5,("got SIGCLD\n")); #ifdef USE_WAITPID - while (waitpid((pid_t)-1,(int *)NULL, WNOHANG) > 0); + while (sys_waitpid((pid_t)-1,(int *)NULL, WNOHANG) > 0); #endif /* Stop zombies */ diff --git a/source3/smbd/uid.c b/source3/smbd/uid.c index 7274c18478..9312a447a0 100644 --- a/source3/smbd/uid.c +++ b/source3/smbd/uid.c @@ -415,7 +415,7 @@ int smbrun(char *cmd,char *outfile,BOOL shared) if ((pid=fork())) { int status=0; /* the parent just waits for the child to exit */ - if (waitpid(pid,&status,0) != pid) { + if (sys_waitpid(pid,&status,0) != pid) { DEBUG(2,("waitpid(%d) : %s\n",pid,strerror(errno))); return -1; } -- cgit