diff options
author | Andrew Tridgell <tridge@samba.org> | 1998-10-24 06:36:22 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 1998-10-24 06:36:22 +0000 |
commit | 4140f2bfc141ee9a91723d274344769f8b11a5f9 (patch) | |
tree | 10570387473b06026ce76564bdb8b3f7a23c4b69 /source3/smbwrapper/smbw.c | |
parent | f9881e8e74041bc022716f01767a174e7a36b38e (diff) | |
download | samba-4140f2bfc141ee9a91723d274344769f8b11a5f9.tar.gz samba-4140f2bfc141ee9a91723d274344769f8b11a5f9.tar.bz2 samba-4140f2bfc141ee9a91723d274344769f8b11a5f9.zip |
make sure that apps can't close one of the internal smbw file
descriptors by catching close attempts on those fds and returning
EBADF.
(This used to be commit 9d863fb1681a5b03696552e1d93fe339b4bae455)
Diffstat (limited to 'source3/smbwrapper/smbw.c')
-rw-r--r-- | source3/smbwrapper/smbw.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/source3/smbwrapper/smbw.c b/source3/smbwrapper/smbw.c index c09d7509f0..622581b7a6 100644 --- a/source3/smbwrapper/smbw.c +++ b/source3/smbwrapper/smbw.c @@ -126,6 +126,25 @@ int smbw_fd(int fd) } /***************************************************** +determine if a file descriptor is an internal smbw fd +*******************************************************/ +int smbw_local_fd(int fd) +{ + struct smbw_server *srv; + + smbw_init(); + + if (smbw_busy) return 0; + if (smbw_shared_fd(fd)) return 1; + + for (srv=smbw_srvs;srv;srv=srv->next) { + if (srv->cli.fd == fd) return 1; + } + + return 0; +} + +/***************************************************** a crude inode number generator *******************************************************/ ino_t smbw_inode(const char *name) @@ -736,7 +755,6 @@ ssize_t smbw_write(int fd, void *buf, size_t count) file = smbw_file(fd); if (!file) { - DEBUG(3,("bad fd in read\n")); errno = EBADF; smbw_busy--; return -1; @@ -768,7 +786,6 @@ ssize_t smbw_pwrite(int fd, void *buf, size_t count, off_t ofs) file = smbw_file(fd); if (!file) { - DEBUG(3,("bad fd in read\n")); errno = EBADF; smbw_busy--; return -1; |