diff options
-rw-r--r-- | src/openvpn/init.c | 13 | ||||
-rw-r--r-- | src/openvpn/misc.c | 10 | ||||
-rw-r--r-- | src/openvpn/ssl.c | 23 | ||||
-rw-r--r-- | src/openvpn/ssl.h | 6 |
4 files changed, 7 insertions, 45 deletions
diff --git a/src/openvpn/init.c b/src/openvpn/init.c index 7990e84..be8ff80 100644 --- a/src/openvpn/init.c +++ b/src/openvpn/init.c @@ -1597,19 +1597,6 @@ initialization_sequence_completed(struct context *c, const unsigned int flags) /* If we delayed UID/GID downgrade or chroot, do it now */ do_uid_gid_chroot(c, true); - - /* - * In some cases (i.e. when receiving auth-token via - * push-reply) the auth-nocache option configured on the - * client is overridden; for this reason we have to wait - * for the push-reply message before attempting to wipe - * the user/pass entered by the user - */ - if (c->options.mode == MODE_POINT_TO_POINT) - { - ssl_clean_user_pass(); - } - /* Test if errors */ if (flags & ISC_ERRORS) { diff --git a/src/openvpn/misc.c b/src/openvpn/misc.c index dceccd2..40b3bf5 100644 --- a/src/openvpn/misc.c +++ b/src/openvpn/misc.c @@ -519,19 +519,13 @@ set_auth_token(struct user_pass *up, struct user_pass *tk, const char *token) * --auth-token has no username, so it needs the username * either already set or copied from up, or later set by * --auth-token-user - * - * Do not overwrite the username if already set to avoid - * overwriting an username set by --auth-token-user + * If already set, tk is fully defined. */ - if (up->defined && !tk->defined) + if (strlen(tk->username)) { - strncpynt(tk->username, up->username, USER_PASS_LEN); tk->defined = true; } } - - /* Cleans user/pass for nocache */ - purge_user_pass(up, false); } void diff --git a/src/openvpn/ssl.c b/src/openvpn/ssl.c index 3de4cc3..aa8266d 100644 --- a/src/openvpn/ssl.c +++ b/src/openvpn/ssl.c @@ -2391,20 +2391,13 @@ key_method_2_write(struct buffer *buf, struct tls_multi *multi, { goto error; } - /* if auth-nocache was specified, the auth_user_pass object reaches - * a "complete" state only after having received the push-reply - * message. The push message might contain an auth-token that needs - * the username of auth_user_pass. - * - * For this reason, skip the purge operation here if no push-reply - * message has been received yet. - * - * This normally happens upon first negotiation only. - */ - if (!session->opt->pull) + /* save username for auth-token which may get pushed later */ + if (session->opt->pull) { - purge_user_pass(&auth_user_pass, false); + strncpynt(auth_token.username, up->username, USER_PASS_LEN); } + /* respect auth-nocache */ + purge_user_pass(&auth_user_pass, false); } else { @@ -4143,9 +4136,3 @@ print_data: done: return BSTR(&out); } - -void -ssl_clean_user_pass(void) -{ - purge_user_pass(&auth_user_pass, false); -} diff --git a/src/openvpn/ssl.h b/src/openvpn/ssl.h index 6b5ae8a..5dabcdf 100644 --- a/src/openvpn/ssl.h +++ b/src/openvpn/ssl.h @@ -603,12 +603,6 @@ void extract_x509_field_test(void); */ bool is_hard_reset_method2(int op); -/** - * Cleans the saved user/password unless auth-nocache is in use. - */ -void ssl_clean_user_pass(void); - - /* * Show the TLS ciphers that are available for us to use in the SSL * library with headers hinting their usage and warnings about usage. |