From: Frank Lichtenheld Date: Tue, 10 Sep 2024 17:00:05 +0000 (+0200) Subject: generate_auth_token: simplify code X-Git-Tag: v2.7_alpha1~207 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3c77d328911bab5169d6981fbef34e8398c5b7b7;p=thirdparty%2Fopenvpn.git generate_auth_token: simplify code The previous code went through some hoops to avoid compiler warnings. But there is a much easier way by just telling it exactly what you want to do. Also fix typo in variable name while I'm here. Change-Id: Icc86334b26ba1fcc20f4cd03644018d1d16796e3 Signed-off-by: Frank Lichtenheld Acked-by: Arne Schwabe Message-Id: <20240910170005.5586-1-gert@greenie.muc.de> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg29178.html Signed-off-by: Gert Doering --- diff --git a/src/openvpn/auth_token.c b/src/openvpn/auth_token.c index c4b59b994..192c7c257 100644 --- a/src/openvpn/auth_token.c +++ b/src/openvpn/auth_token.c @@ -182,24 +182,18 @@ generate_auth_token(const struct user_pass *up, struct tls_multi *multi) char *initial_token_copy = string_alloc(multi->auth_token_initial, &gc); char *old_sessid = initial_token_copy + strlen(SESSION_ID_PREFIX); - char *old_tsamp_initial = old_sessid + AUTH_TOKEN_SESSION_ID_LEN*8/6; + char *old_tstamp_initial = old_sessid + AUTH_TOKEN_SESSION_ID_LEN*8/6; /* * We null terminate the old token just after the session ID to let * our base64 decode function only decode the session ID */ - old_tsamp_initial[12] = '\0'; - ASSERT(openvpn_base64_decode(old_tsamp_initial, old_tstamp_decode, 9) == 9); + old_tstamp_initial[12] = '\0'; + ASSERT(openvpn_base64_decode(old_tstamp_initial, old_tstamp_decode, 9) == 9); - /* - * Avoid old gcc (4.8.x) complaining about strict aliasing - * by using a temporary variable instead of doing it in one - * line - */ - uint64_t *tstamp_ptr = (uint64_t *) old_tstamp_decode; - initial_timestamp = *tstamp_ptr; + memcpy(&initial_timestamp, &old_tstamp_decode, sizeof(initial_timestamp)); - old_tsamp_initial[0] = '\0'; + old_tstamp_initial[0] = '\0'; ASSERT(openvpn_base64_decode(old_sessid, sessid, AUTH_TOKEN_SESSION_ID_LEN) == AUTH_TOKEN_SESSION_ID_LEN); } else if (!rand_bytes(sessid, AUTH_TOKEN_SESSION_ID_LEN))