From 0a797da05f72aef0a214a644cfcb1fb1a70b0418 Mon Sep 17 00:00:00 2001 From: Hein Tibosch Date: Sat, 30 Jul 2022 14:54:45 +0800 Subject: [PATCH 1/7] IPv4/single: some minor comments after the MISRA changes --- source/FreeRTOS_DNS.c | 28 +++++++++++++++------------- source/FreeRTOS_DNS_Networking.c | 20 +++++++++++++------- source/FreeRTOS_IP_Utils.c | 2 +- source/include/FreeRTOS_IP.h | 12 ++++++++---- 4 files changed, 37 insertions(+), 25 deletions(-) diff --git a/source/FreeRTOS_DNS.c b/source/FreeRTOS_DNS.c index 6c774ffa01..9a674a5053 100644 --- a/source/FreeRTOS_DNS.c +++ b/source/FreeRTOS_DNS.c @@ -472,7 +472,7 @@ Socket_t xDNSSocket, const struct freertos_sockaddr * pxAddress ) { - BaseType_t uxReturn = pdFAIL; + BaseType_t xReturn = pdFAIL; struct xDNSBuffer xDNSBuf = { 0 }; NetworkBufferDescriptor_t * pxNetworkBuffer = NULL; @@ -498,17 +498,17 @@ uxIdentifier ); /* send the dns message */ - uxReturn = DNS_SendRequest( xDNSSocket, - pxAddress, - &xDNSBuf ); + xReturn = DNS_SendRequest( xDNSSocket, + pxAddress, + &xDNSBuf ); - if( uxReturn == pdFAIL ) + if( xReturn == pdFAIL ) { vReleaseNetworkBufferAndDescriptor( pxNetworkBuffer ); } } - return uxReturn; + return xReturn; } /*! @@ -525,19 +525,21 @@ uint32_t ulIPAddress = 0; struct freertos_sockaddr xAddress; - DNSBuffer_t xReceiveBuffer = { 0 }; - BaseType_t uxReturn = pdFAIL; + DNSBuffer_t xReceiveBuffer; + BaseType_t xReturn = pdFAIL; + + memset( xReceiveBuffer, 0, sizeof( xReceiveBuffer ) ); prvFillSockAddress( &xAddress, pcHostName ); do { - uxReturn = prvSendBuffer( pcHostName, - uxIdentifier, - xDNSSocket, - &xAddress ); + xReturn = prvSendBuffer( pcHostName, + uxIdentifier, + xDNSSocket, + &xAddress ); - if( uxReturn == pdFAIL ) + if( xReturn == pdFAIL ) { break; } diff --git a/source/FreeRTOS_DNS_Networking.c b/source/FreeRTOS_DNS_Networking.c index c30ac7a341..cd0e198f01 100644 --- a/source/FreeRTOS_DNS_Networking.c +++ b/source/FreeRTOS_DNS_Networking.c @@ -131,15 +131,21 @@ struct xDNSBuffer * pxReceiveBuffer ) { uint32_t ulAddressLength = ( uint32_t ) sizeof( struct freertos_sockaddr ); + int32_t lResult; /* Wait for the reply. */ - pxReceiveBuffer->uxPayloadLength = ( size_t ) FreeRTOS_recvfrom( xDNSSocket, - &pxReceiveBuffer->pucPayloadBuffer, - 0, - FREERTOS_ZERO_COPY, - xAddress, - &ulAddressLength ); - pxReceiveBuffer->uxPayloadSize = pxReceiveBuffer->uxPayloadLength; + lResult = FreeRTOS_recvfrom( xDNSSocket, + &pxReceiveBuffer->pucPayloadBuffer, + 0, + FREERTOS_ZERO_COPY, + xAddress, + &ulAddressLength ); + + if( lResult > 0 ) + { + pxReceiveBuffer->uxPayloadLength = ( size_t ) lResult; + pxReceiveBuffer->uxPayloadSize = pxReceiveBuffer->uxPayloadLength; + } } /** diff --git a/source/FreeRTOS_IP_Utils.c b/source/FreeRTOS_IP_Utils.c index 35b1d525df..9762f3933c 100644 --- a/source/FreeRTOS_IP_Utils.c +++ b/source/FreeRTOS_IP_Utils.c @@ -1151,7 +1151,7 @@ const char * FreeRTOS_strerror_r( BaseType_t xErrnum, /* MISRA Ref 21.6.1 [snprintf and logging] */ /* More details at: https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/MISRA.md#rule-216 */ /* coverity[misra_c_2012_rule_21_6_violation] */ - ( void ) snprintf( pcBuffer, uxLength, "Errno %d", xErrnum ); + ( void ) snprintf( pcBuffer, uxLength, "Errno %d", ( int ) xErrnum ); pcName = NULL; break; } diff --git a/source/include/FreeRTOS_IP.h b/source/include/FreeRTOS_IP.h index e516603bc3..08894ba305 100644 --- a/source/include/FreeRTOS_IP.h +++ b/source/include/FreeRTOS_IP.h @@ -44,11 +44,15 @@ /* Constants defining the current version of the FreeRTOS+TCP * network stack. */ -#define ipFR_TCP_VERSION_NUMBER "V2.3.999" -#define ipFR_TCP_VERSION_MAJOR 2 -#define ipFR_TCP_VERSION_MINOR 3 +#define ipFR_TCP_VERSION_MAJOR 2 +#define ipFR_TCP_VERSION_MINOR 3 /* Development builds are always version 999. */ -#define ipFR_TCP_VERSION_BUILD 999 +#define ipFR_TCP_VERSION_BUILD 999 +#define __VERSION( v1, v2, v3 ) # v1 "." # v2 "." # v3 +#define _VERSION( v1, v2, v3 ) __VERSION( v1, v2, v3 ) +/* ipFR_TCP_VERSION_NUMBER makes a string like "2.3.999". */ +#define ipFR_TCP_VERSION_NUMBER \ + _VERSION( ipFR_TCP_VERSION_MAJOR, ipFR_TCP_VERSION_MINOR, ipFR_TCP_VERSION_BUILD ) /* Some constants defining the sizes of several parts of a packet. * These defines come before including the configuration header files. */ From 300fe3f21ecb8686a7950f98ce170bec8bac13d6 Mon Sep 17 00:00:00 2001 From: Hein Tibosch Date: Sat, 30 Jul 2022 15:29:48 +0800 Subject: [PATCH 2/7] Added the "V" in the version macro --- source/include/FreeRTOS_IP.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/include/FreeRTOS_IP.h b/source/include/FreeRTOS_IP.h index 08894ba305..c40d5730d4 100644 --- a/source/include/FreeRTOS_IP.h +++ b/source/include/FreeRTOS_IP.h @@ -48,7 +48,7 @@ #define ipFR_TCP_VERSION_MINOR 3 /* Development builds are always version 999. */ #define ipFR_TCP_VERSION_BUILD 999 -#define __VERSION( v1, v2, v3 ) # v1 "." # v2 "." # v3 +#define __VERSION( v1, v2, v3 ) "V" # v1 "." # v2 "." # v3 #define _VERSION( v1, v2, v3 ) __VERSION( v1, v2, v3 ) /* ipFR_TCP_VERSION_NUMBER makes a string like "2.3.999". */ #define ipFR_TCP_VERSION_NUMBER \ From cb2f24843fd04fe893f445d93ed2af7661e59e83 Mon Sep 17 00:00:00 2001 From: Hein Tibosch Date: Sat, 30 Jul 2022 16:35:17 +0800 Subject: [PATCH 3/7] Corrected the call to memset() --- source/FreeRTOS_DNS.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/FreeRTOS_DNS.c b/source/FreeRTOS_DNS.c index 9a674a5053..e1606f8958 100644 --- a/source/FreeRTOS_DNS.c +++ b/source/FreeRTOS_DNS.c @@ -528,7 +528,7 @@ DNSBuffer_t xReceiveBuffer; BaseType_t xReturn = pdFAIL; - memset( xReceiveBuffer, 0, sizeof( xReceiveBuffer ) ); + memset( &( xReceiveBuffer ), 0, sizeof( xReceiveBuffer ) ); prvFillSockAddress( &xAddress, pcHostName ); From ad270dbad43caf59a5c8c3c681aef1e6ef5a8b33 Mon Sep 17 00:00:00 2001 From: Hein Tibosch Date: Thu, 27 Oct 2022 11:53:57 +0800 Subject: [PATCH 4/7] Update source/FreeRTOS_DNS_Networking.c Aniruddha suggestion to clear uxPayloadXXX when recv() failed Co-authored-by: Aniruddha Kanhere <60444055+AniruddhaKanhere@users.noreply.github.com> --- source/FreeRTOS_DNS_Networking.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/FreeRTOS_DNS_Networking.c b/source/FreeRTOS_DNS_Networking.c index cd0e198f01..5c35e71cd6 100644 --- a/source/FreeRTOS_DNS_Networking.c +++ b/source/FreeRTOS_DNS_Networking.c @@ -146,6 +146,11 @@ pxReceiveBuffer->uxPayloadLength = ( size_t ) lResult; pxReceiveBuffer->uxPayloadSize = pxReceiveBuffer->uxPayloadLength; } + else + { + pxReceiveBuffer->uxPayloadLength = 0U; + pxReceiveBuffer->uxPayloadSize = 0U; + } } /** From e9394b30dc5b840434620b8eeddd49f35e70db54 Mon Sep 17 00:00:00 2001 From: Hein Tibosch Date: Thu, 27 Oct 2022 12:07:08 +0800 Subject: [PATCH 5/7] Undo the change to the macro ipFR_TCP_VERSION_NUMBER --- source/include/FreeRTOS_IP.h | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/source/include/FreeRTOS_IP.h b/source/include/FreeRTOS_IP.h index c40d5730d4..0faa2f6f07 100644 --- a/source/include/FreeRTOS_IP.h +++ b/source/include/FreeRTOS_IP.h @@ -44,15 +44,11 @@ /* Constants defining the current version of the FreeRTOS+TCP * network stack. */ -#define ipFR_TCP_VERSION_MAJOR 2 -#define ipFR_TCP_VERSION_MINOR 3 +#define ipFR_TCP_VERSION_NUMBER "V3.1.999" +#define ipFR_TCP_VERSION_MAJOR 3 +#define ipFR_TCP_VERSION_MINOR 1 /* Development builds are always version 999. */ -#define ipFR_TCP_VERSION_BUILD 999 -#define __VERSION( v1, v2, v3 ) "V" # v1 "." # v2 "." # v3 -#define _VERSION( v1, v2, v3 ) __VERSION( v1, v2, v3 ) -/* ipFR_TCP_VERSION_NUMBER makes a string like "2.3.999". */ -#define ipFR_TCP_VERSION_NUMBER \ - _VERSION( ipFR_TCP_VERSION_MAJOR, ipFR_TCP_VERSION_MINOR, ipFR_TCP_VERSION_BUILD ) +#define ipFR_TCP_VERSION_BUILD 999 /* Some constants defining the sizes of several parts of a packet. * These defines come before including the configuration header files. */ From 662462e0f81a31ca6099251e0fb9cd34a0fec94d Mon Sep 17 00:00:00 2001 From: ActoryOu Date: Wed, 19 Jul 2023 14:19:44 +0800 Subject: [PATCH 6/7] Remove redundant variablein DNS_Networking.c. --- source/FreeRTOS_DNS_Networking.c | 1 - 1 file changed, 1 deletion(-) diff --git a/source/FreeRTOS_DNS_Networking.c b/source/FreeRTOS_DNS_Networking.c index a4a09ea8a1..9d41bcd877 100644 --- a/source/FreeRTOS_DNS_Networking.c +++ b/source/FreeRTOS_DNS_Networking.c @@ -142,7 +142,6 @@ { BaseType_t xReturn; uint32_t ulAddressLength = ( uint32_t ) sizeof( struct freertos_sockaddr ); - int32_t lResult; /* Wait for the reply. */ xReturn = FreeRTOS_recvfrom( xDNSSocket, From de08f158ea3a9f4c5d84e18a5085cead1c3264ef Mon Sep 17 00:00:00 2001 From: ActoryOu Date: Wed, 19 Jul 2023 06:25:44 +0000 Subject: [PATCH 7/7] Formatting. --- source/FreeRTOS_DNS.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/FreeRTOS_DNS.c b/source/FreeRTOS_DNS.c index 5aa65c9e7c..c8b21af793 100644 --- a/source/FreeRTOS_DNS.c +++ b/source/FreeRTOS_DNS.c @@ -1291,10 +1291,10 @@ } xReturn = prvSendBuffer( pcHostName, - uxIdentifier, - xDNSSocket, - xFamily, - &xAddress ); + uxIdentifier, + xDNSSocket, + xFamily, + &xAddress ); if( xReturn == pdFAIL ) {