diff options
-rw-r--r-- | source3/smbd/ipc.c | 2 | ||||
-rw-r--r-- | source3/smbd/server.c | 13 |
2 files changed, 12 insertions, 3 deletions
diff --git a/source3/smbd/ipc.c b/source3/smbd/ipc.c index b9355c4ec0..6da9562c9f 100644 --- a/source3/smbd/ipc.c +++ b/source3/smbd/ipc.c @@ -1074,7 +1074,7 @@ static BOOL api_RNetServerEnum(int cnum, uint16 vuid, char *param, char *data, *rparam_len = 8; *rparam = REALLOC(*rparam,*rparam_len); - SSVAL(*rparam,0,NERR_Success); + SSVAL(*rparam,0,(missed == 0 ? NERR_Success : ERROR_MORE_DATA)); SSVAL(*rparam,2,0); SSVAL(*rparam,4,counted); SSVAL(*rparam,6,counted+missed); diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 92c219c71b..290181fb9e 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -3167,8 +3167,17 @@ int make_connection(char *service,char *user,char *password, int pwlen, char *de } /* admin user check */ - if (user_in_list(user,lp_admin_users(snum)) && - !pcon->read_only) + + /* JRA - original code denied admin user if the share was + marked read_only. Changed as I don't think this is needed, + but old code left in case there is a problem here. + */ + if (user_in_list(user,lp_admin_users(snum)) +#if 0 + && !pcon->read_only) +#else + ) +#endif { pcon->admin_user = True; DEBUG(0,("%s logged in as admin user (root privileges)\n",user)); |