diff options
Diffstat (limited to 'src/libcharon/plugins/eap_radius/radius_message.c')
-rw-r--r-- | src/libcharon/plugins/eap_radius/radius_message.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/libcharon/plugins/eap_radius/radius_message.c b/src/libcharon/plugins/eap_radius/radius_message.c index 7fa95e39d..8a2074b2f 100644 --- a/src/libcharon/plugins/eap_radius/radius_message.c +++ b/src/libcharon/plugins/eap_radius/radius_message.c @@ -319,7 +319,14 @@ METHOD(radius_message_t, verify, bool, /* replace Response by Request Authenticator for verification */ memcpy(res_auth, this->msg->authenticator, HASH_SIZE_MD5); - memcpy(this->msg->authenticator, req_auth, HASH_SIZE_MD5); + if (req_auth) + { + memcpy(this->msg->authenticator, req_auth, HASH_SIZE_MD5); + } + else + { + memset(this->msg->authenticator, 0, HASH_SIZE_MD5); + } msg = chunk_create((u_char*)this->msg, ntohs(this->msg->length)); /* verify Response-Authenticator */ |