summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2002-06-16 09:38:11 +0000
committerAndrew Bartlett <abartlet@samba.org>2002-06-16 09:38:11 +0000
commit36f7eaf32c40451d2e9cb9432491a1a03bf3780b (patch)
tree5ffbd0303ee71938b5b316870e92958e7c1f19dd
parenta54afa45be41a46432470b6fa3f29050f09b47ba (diff)
downloadsamba-36f7eaf32c40451d2e9cb9432491a1a03bf3780b.tar.gz
samba-36f7eaf32c40451d2e9cb9432491a1a03bf3780b.tar.bz2
samba-36f7eaf32c40451d2e9cb9432491a1a03bf3780b.zip
Further updates to the service.c code. authorise_login() is now a bit simpiler
and we seem to have eliminated the segfault. Unfortunetly I'm still at a bit of a loss as to why it did segfault, but the patch is correct in any case. Andrew Bartlett (This used to be commit 70c16188c7a267f9f3f8de0b6830f66c9e68a2c7)
-rw-r--r--source3/smbd/password.c4
-rw-r--r--source3/smbd/service.c8
2 files changed, 6 insertions, 6 deletions
diff --git a/source3/smbd/password.c b/source3/smbd/password.c
index 6eaa7b7fbb..f9bcad4154 100644
--- a/source3/smbd/password.c
+++ b/source3/smbd/password.c
@@ -474,7 +474,7 @@ static char *validate_group(char *group, DATA_BLOB password,int snum)
****************************************************************************/
BOOL authorise_login(int snum,char *user, DATA_BLOB password,
- BOOL *guest, BOOL *force)
+ BOOL *guest)
{
BOOL ok = False;
@@ -485,8 +485,6 @@ BOOL authorise_login(int snum,char *user, DATA_BLOB password,
*guest = False;
- if (GUEST_ONLY(snum))
- *force = True;
/* there are several possibilities:
1) login as the given user with given password
2) login as a previously registered username with the given password
diff --git a/source3/smbd/service.c b/source3/smbd/service.c
index 1bb55fbcf8..caf1cef17a 100644
--- a/source3/smbd/service.c
+++ b/source3/smbd/service.c
@@ -360,6 +360,7 @@ static connection_struct *make_connection_snum(int snum, user_struct *vuser,
fstrcpy(user,pass->pw_name);
conn->force_user = True;
string_set(&conn->user,pass->pw_name);
+ passwd_free(&pass);
DEBUG(3,("Guest only user %s\n",user));
} else if (vuser) {
if (vuser->guest) {
@@ -388,9 +389,10 @@ static connection_struct *make_connection_snum(int snum, user_struct *vuser,
are in share mode security */
add_session_user(lp_servicename(snum));
/* shall we let them in? */
- if (!authorise_login(snum,user,password,&guest,&force)) {
- DEBUG( 2, ( "Invalid username/password for %s [%s]\n",
- lp_servicename(snum), user ) );
+ if (!authorise_login(snum,user,password,&guest)) {
+ DEBUG( 2, ( "Invalid username/password for [%s]\n",
+ lp_servicename(snum)) );
+ conn_free(conn);
*status = NT_STATUS_WRONG_PASSWORD;
return NULL;
}