summaryrefslogtreecommitdiffstats
path: root/crypto/openssh/auth2-chall.c
diff options
context:
space:
mode:
authordes <des@FreeBSD.org>2005-06-05 15:46:09 +0000
committerdes <des@FreeBSD.org>2005-06-05 15:46:09 +0000
commit983ad11a1c78949e86a0f51f51ef0d614cc5e665 (patch)
tree7d41ca8690f59b7463bd4d5fefde78dac8a00e60 /crypto/openssh/auth2-chall.c
parent3c5bc6b274083ffa3a7aa67e87c8936a1778eff5 (diff)
downloadFreeBSD-src-983ad11a1c78949e86a0f51f51ef0d614cc5e665.zip
FreeBSD-src-983ad11a1c78949e86a0f51f51ef0d614cc5e665.tar.gz
Resolve conflicts.
Diffstat (limited to 'crypto/openssh/auth2-chall.c')
-rw-r--r--crypto/openssh/auth2-chall.c35
1 files changed, 27 insertions, 8 deletions
diff --git a/crypto/openssh/auth2-chall.c b/crypto/openssh/auth2-chall.c
index 788c6c6..7b5762f 100644
--- a/crypto/openssh/auth2-chall.c
+++ b/crypto/openssh/auth2-chall.c
@@ -23,7 +23,7 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "includes.h"
-RCSID("$OpenBSD: auth2-chall.c,v 1.21 2004/06/01 14:20:45 dtucker Exp $");
+RCSID("$OpenBSD: auth2-chall.c,v 1.22 2005/01/19 13:11:47 dtucker Exp $");
RCSID("$FreeBSD$");
#include "ssh2.h"
@@ -33,6 +33,10 @@ RCSID("$FreeBSD$");
#include "xmalloc.h"
#include "dispatch.h"
#include "log.h"
+#include "servconf.h"
+
+/* import */
+extern ServerOptions options;
static int auth2_challenge_start(Authctxt *);
static int send_userauth_info_request(Authctxt *);
@@ -72,6 +76,21 @@ struct KbdintAuthctxt
u_int nreq;
};
+#ifdef USE_PAM
+void
+remove_kbdint_device(const char *devname)
+{
+ int i, j;
+
+ for (i = 0; devices[i] != NULL; i++)
+ if (strcmp(devices[i]->name, devname) == 0) {
+ for (j = i; devices[j] != NULL; j++)
+ devices[j] = devices[j+1];
+ i--;
+ }
+}
+#endif
+
static KbdintAuthctxt *
kbdint_alloc(const char *devs)
{
@@ -79,6 +98,11 @@ kbdint_alloc(const char *devs)
Buffer b;
int i;
+#ifdef USE_PAM
+ if (!options.use_pam)
+ remove_kbdint_device("pam");
+#endif
+
kbdintctxt = xmalloc(sizeof(KbdintAuthctxt));
if (strcmp(devs, "") == 0) {
buffer_init(&b);
@@ -275,12 +299,7 @@ input_userauth_info_response(int type, u_int32_t seq, void *ctxt)
}
packet_check_eom();
- if (authctxt->valid) {
- res = kbdintctxt->device->respond(kbdintctxt->ctxt,
- nresp, response);
- } else {
- res = -1;
- }
+ res = kbdintctxt->device->respond(kbdintctxt->ctxt, nresp, response);
for (i = 0; i < nresp; i++) {
memset(response[i], 'r', strlen(response[i]));
@@ -292,7 +311,7 @@ input_userauth_info_response(int type, u_int32_t seq, void *ctxt)
switch (res) {
case 0:
/* Success! */
- authenticated = 1;
+ authenticated = authctxt->valid ? 1 : 0;
break;
case 1:
/* Authentication needs further interaction */
OpenPOWER on IntegriCloud