From 5988f35593294a1b6ce65caa9761ec364ef9f1c4 Mon Sep 17 00:00:00 2001 From: Daniel Pouzzner Date: Thu, 19 May 2022 11:31:24 -0500 Subject: [PATCH] src/wolfio.c: in EmbedReceiveFrom((), clear peer before recvfrom() to fix clang-analyzer-core.UndefinedBinaryOperatorResult; add DTLS_ prefix to macros SENDTO_FUNCTION and RECVFROM_FUNCTION, and gate their definitions on their being undefined to allow overrides. --- src/wolfio.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/wolfio.c b/src/wolfio.c index 7e35ab68f..deb2ebcd3 100644 --- a/src/wolfio.c +++ b/src/wolfio.c @@ -317,8 +317,12 @@ int EmbedSend(WOLFSSL* ssl, char *buf, int sz, void *ctx) #include -#define SENDTO_FUNCTION sendto -#define RECVFROM_FUNCTION recvfrom +#ifndef DTLS_SENDTO_FUNCTION + #define DTLS_SENDTO_FUNCTION sendto +#endif +#ifndef DTLS_RECVFROM_FUNCTION + #define DTLS_RECVFROM_FUNCTION recvfrom +#endif static int sockAddrEqual( SOCKADDR_S *a, XSOCKLENT aLen, SOCKADDR_S *b, XSOCKLENT bLen) @@ -413,7 +417,9 @@ int EmbedReceiveFrom(WOLFSSL *ssl, char *buf, int sz, void *ctx) } #endif /* !NO_ASN_TIME */ - recvd = (int)RECVFROM_FUNCTION(sd, buf, sz, ssl->rflags, + XMEMSET(&peer, 0, sizeof(peer)); + + recvd = (int)DTLS_RECVFROM_FUNCTION(sd, buf, sz, ssl->rflags, (SOCKADDR*)&peer, &peerSz); recvd = TranslateReturnCode(recvd, sd); @@ -455,7 +461,7 @@ int EmbedSendTo(WOLFSSL* ssl, char *buf, int sz, void *ctx) WOLFSSL_ENTER("EmbedSendTo()"); - sent = (int)SENDTO_FUNCTION(sd, buf, sz, ssl->wflags, + sent = (int)DTLS_SENDTO_FUNCTION(sd, buf, sz, ssl->wflags, (const SOCKADDR*)dtlsCtx->peer.sa, dtlsCtx->peer.sz); @@ -483,7 +489,7 @@ int EmbedReceiveFromMcast(WOLFSSL *ssl, char *buf, int sz, void *ctx) WOLFSSL_ENTER("EmbedReceiveFromMcast()"); - recvd = (int)RECVFROM_FUNCTION(sd, buf, sz, ssl->rflags, NULL, NULL); + recvd = (int)DTLS_RECVFROM_FUNCTION(sd, buf, sz, ssl->rflags, NULL, NULL); recvd = TranslateReturnCode(recvd, sd);