Author: Carlos Soto <carlos.soto at terra.es <mailto:carlos.s...@terra.es> >



Variable common_name can be blank in client-connect script



If a server is configured with auth-user-pass-optional and
username-as-common-name it is possible that the auth-user-pass-verify script
will validate a connection with no username as it is optional. It that case
the common_name becames blank and client-connect script may fail because it
does not have a value for the common name. I think that the common name
should never be blank so in cases where the username is blank and the
username-as-common-name option is enabled, the common_name should keep its
original value.





diff --git a/ssl.c b/ssl.c

index a1268ac..381ab07 100644

--- a/ssl.c

+++ b/ssl.c

@@ -3718,7 +3718,7 @@ key_method_2_read (struct buffer *buf, struct
tls_multi *multi, struct tls_sessi

          if (man_def_auth != KMDA_UNDEF)

            ks->auth_deferred = true;

 #endif

-         if ((session->opt->ssl_flags & SSLF_USERNAME_AS_COMMON_NAME))

+         if ((session->opt->ssl_flags & SSLF_USERNAME_AS_COMMON_NAME) &&
(strlen (up->username)))

            set_common_name (session, up->username);

 #ifdef ENABLE_DEF_AUTH

          msg (D_HANDSHAKE, "TLS: Username/Password authentication %s for
username '%s' %s",





Reply via email to