From e7bfcc37fcebbc25ef5d214c35d2934cb571f298 Mon Sep 17 00:00:00 2001 From: Martin Fleisz Date: Wed, 22 Sep 2021 14:19:56 +0200 Subject: [PATCH] core: Fix invalid memory access in local peer detection --- libfreerdp/core/listener.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libfreerdp/core/listener.c b/libfreerdp/core/listener.c index d9bed6851..aaf466be6 100644 --- a/libfreerdp/core/listener.c +++ b/libfreerdp/core/listener.c @@ -306,14 +306,14 @@ BOOL freerdp_peer_set_local_and_hostname(freerdp_peer* client, if (peer_addr->ss_family == AF_INET) { - sin_addr = &(((struct sockaddr_in*)&peer_addr)->sin_addr); + sin_addr = &(((struct sockaddr_in*)peer_addr)->sin_addr); if ((*(UINT32*)sin_addr) == 0x0100007f) client->local = TRUE; } else if (peer_addr->ss_family == AF_INET6) { - sin_addr = &(((struct sockaddr_in6*)&peer_addr)->sin6_addr); + sin_addr = &(((struct sockaddr_in6*)peer_addr)->sin6_addr); if (memcmp(sin_addr, localhost6_bytes, 16) == 0) client->local = TRUE;