summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2001-06-19 18:43:15 +0000
committerJeremy Allison <jra@samba.org>2001-06-19 18:43:15 +0000
commitf5568f7c89a07df96f1365deb1efe72bf323c4a9 (patch)
tree60ee187291ffb638a7bd1923a68b459fa80a186a
parent2abb4c1c6f98d3ae89272681c48144125feec84d (diff)
downloadsamba-f5568f7c89a07df96f1365deb1efe72bf323c4a9.tar.gz
samba-f5568f7c89a07df96f1365deb1efe72bf323c4a9.tar.xz
samba-f5568f7c89a07df96f1365deb1efe72bf323c4a9.zip
Only try and open a directory if we get EISDIR.
Jeremy.
-rw-r--r--source/rpc_server/srv_srvsvc_nt.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/source/rpc_server/srv_srvsvc_nt.c b/source/rpc_server/srv_srvsvc_nt.c
index e56e63490d3..46505122183 100644
--- a/source/rpc_server/srv_srvsvc_nt.c
+++ b/source/rpc_server/srv_srvsvc_nt.c
@@ -1612,8 +1612,10 @@ uint32 _srv_net_file_query_secdesc(pipes_struct *p, SRV_Q_NET_FILE_QUERY_SECDESC
if (!fsp) {
/* Perhaps it is a directory */
- fsp = open_directory(conn, filename, &st,
- (FILE_FAIL_IF_NOT_EXIST|FILE_EXISTS_OPEN), 0, &action);
+ if (errno == EISDIR)
+ fsp = open_directory(conn, filename, &st,
+ (FILE_FAIL_IF_NOT_EXIST|FILE_EXISTS_OPEN), 0, &action);
+
if (!fsp) {
DEBUG(3,("_srv_net_file_query_secdesc: Unable to open file %s\n", filename));
r_u->status = ERROR_ACCESS_DENIED;
@@ -1705,8 +1707,10 @@ uint32 _srv_net_file_set_secdesc(pipes_struct *p, SRV_Q_NET_FILE_SET_SECDESC *q_
if (!fsp) {
/* Perhaps it is a directory */
- fsp = open_directory(conn, filename, &st,
- (FILE_FAIL_IF_NOT_EXIST|FILE_EXISTS_OPEN), 0, &action);
+ if (errno == EISDIR)
+ fsp = open_directory(conn, filename, &st,
+ (FILE_FAIL_IF_NOT_EXIST|FILE_EXISTS_OPEN), 0, &action);
+
if (!fsp) {
DEBUG(3,("_srv_net_file_set_secdesc: Unable to open file %s\n", filename));
r_u->status = ERROR_ACCESS_DENIED;