diff options
author | Andrew Bartlett <abartlet@samba.org> | 2002-06-16 09:38:11 +0000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2002-06-16 09:38:11 +0000 |
commit | 36f7eaf32c40451d2e9cb9432491a1a03bf3780b (patch) | |
tree | 5ffbd0303ee71938b5b316870e92958e7c1f19dd /source3 | |
parent | a54afa45be41a46432470b6fa3f29050f09b47ba (diff) | |
download | samba-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)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/smbd/password.c | 4 | ||||
-rw-r--r-- | source3/smbd/service.c | 8 |
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; } |