summaryrefslogtreecommitdiff
path: root/source3/smbd/service.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2001-04-11 21:19:25 +0000
committerJeremy Allison <jra@samba.org>2001-04-11 21:19:25 +0000
commit0ca9f5c023df2ee498dcd1bdb2f29abc632a5d60 (patch)
tree4a20b4111f497e2c0ddbe02fa2e39e7d66fdeaa7 /source3/smbd/service.c
parent362e4bb21a3c630eb0625a1b3ab9f70dafc85d7e (diff)
downloadsamba-0ca9f5c023df2ee498dcd1bdb2f29abc632a5d60.tar.gz
samba-0ca9f5c023df2ee498dcd1bdb2f29abc632a5d60.tar.bz2
samba-0ca9f5c023df2ee498dcd1bdb2f29abc632a5d60.zip
Fix for core dump in security = share code with new share security db.
Jeremy. (This used to be commit 20b13bafdff2fd7be9219ed164e7fe91b597298d)
Diffstat (limited to 'source3/smbd/service.c')
-rw-r--r--source3/smbd/service.c44
1 files changed, 22 insertions, 22 deletions
diff --git a/source3/smbd/service.c b/source3/smbd/service.c
index 11ae11054a..507d07cc42 100644
--- a/source3/smbd/service.c
+++ b/source3/smbd/service.c
@@ -343,28 +343,6 @@ connection_struct *make_connection(char *service,char *user,char *password, int
conn->read_only = lp_readonly(snum);
- /*
- * New code to check if there's a share security descripter
- * added from NT server manager. This is an additional check
- * before the smb.conf checks are done. JRA.
- */
-
- {
- BOOL can_write = share_access_check(snum, vuid, FILE_WRITE_DATA);
-
- if (!can_write) {
- if (!share_access_check(snum, vuid, FILE_READ_DATA)) {
- /* No access, read or write. */
- *ecode = ERRaccess;
- DEBUG(0,( "make_connection: connection to %s denied due to security descriptor.\n",
- service ));
- conn_free(conn);
- return NULL;
- } else {
- conn->read_only = True;
- }
- }
- }
{
pstring list;
@@ -527,6 +505,28 @@ connection_struct *make_connection(char *service,char *user,char *password, int
conn->ngroups, conn->groups,
guest);
+ /*
+ * New code to check if there's a share security descripter
+ * added from NT server manager. This is done after the
+ * smb.conf checks are done as we need a uid and token. JRA.
+ */
+
+ {
+ BOOL can_write = share_access_check(conn, snum, vuid, FILE_WRITE_DATA);
+
+ if (!can_write) {
+ if (!share_access_check(conn, snum, vuid, FILE_READ_DATA)) {
+ /* No access, read or write. */
+ *ecode = ERRaccess;
+ DEBUG(0,( "make_connection: connection to %s denied due to security descriptor.\n",
+ service ));
+ conn_free(conn);
+ return NULL;
+ } else {
+ conn->read_only = True;
+ }
+ }
+ }
/* Initialise VFS function pointers */
if (*lp_vfsobj(SNUM(conn))) {