]> andersk Git - gssapi-openssh.git/blobdiff - openssh/auth2-gss.c
fix typo on last checkin
[gssapi-openssh.git] / openssh / auth2-gss.c
index 917cec7a4af27facf6152cad3ed9511d00275d74..def1b7bb7d48d91fd7927fb108701a2ed4554aaf 100644 (file)
@@ -100,15 +100,16 @@ userauth_gssapi(Authctxt *authctxt)
                present = 0;
                doid = packet_get_string(&len);
 
-               if (doid[0] != SSH_GSS_OIDTYPE || doid[1] != len-2) {
-                       logit("Mechanism OID received using the old encoding form");
-                       goid.elements = doid;
-                       goid.length = len;
-               } else {
+               if (len > 2 &&
+                  doid[0] == SSH_GSS_OIDTYPE &&
+                  doid[1] == len - 2) {
                        goid.elements = doid + 2;
                        goid.length   = len - 2;
+                       gss_test_oid_set_member(&ms, &goid, supported,
+                           &present);
+               } else {
+                       logit("Badly formed OID received");
                }
-               gss_test_oid_set_member(&ms, &goid, supported, &present);
        } while (mechs > 0 && !present);
 
        gss_release_oid_set(&ms, &supported);
@@ -234,11 +235,11 @@ input_gssapi_errtok(int type, u_int32_t plen, void *ctxt)
 static void
 gssapi_set_implicit_username(Authctxt *authctxt)
 {
-    if ((authctxt->user == NULL) || (strcmp(authctxt->user, "") == 0)) {
+    if ((authctxt->user == NULL) || (authctxt->user[0] == '\0')) {
        char *lname = NULL;
        PRIVSEP(ssh_gssapi_localname(&lname));
        if (lname && lname[0] != '\0') {
-           xfree(authctxt->user);
+           if (authctxt->user) xfree(authctxt->user);
            authctxt->user = lname;
            debug("set username to %s from gssapi context", lname);
            authctxt->pw = PRIVSEP(getpwnamallow(authctxt->user));
This page took 0.036476 seconds and 4 git commands to generate.