From 06019a60c6d45ffb46a153f7a3ef8bfaf06781b2 Mon Sep 17 00:00:00 2001 From: tony-josi-aws Date: Fri, 9 Feb 2024 12:42:30 +0530 Subject: [PATCH 1/2] Fix C90: Wno-declaration-after-statement --- CMakeLists.txt | 3 -- source/FreeRTOS_DHCP.c | 39 ++++++++++------------- source/FreeRTOS_DHCPv6.c | 24 +++++++------- source/FreeRTOS_DNS.c | 27 +++++++++------- source/FreeRTOS_IP.c | 3 +- source/FreeRTOS_IP_Utils.c | 3 +- source/FreeRTOS_IPv4_Utils.c | 3 +- source/FreeRTOS_IPv6_Utils.c | 4 ++- source/FreeRTOS_ND.c | 6 ++-- source/FreeRTOS_RA.c | 6 +++- source/FreeRTOS_TCP_IP.c | 5 ++- source/FreeRTOS_TCP_IP_IPv6.c | 25 +++++++++------ source/FreeRTOS_TCP_State_Handling_IPv6.c | 4 +-- source/FreeRTOS_TCP_Transmission_IPv4.c | 4 ++- source/FreeRTOS_TCP_Transmission_IPv6.c | 5 +-- source/FreeRTOS_TCP_Utils_IPv6.c | 3 +- source/FreeRTOS_UDP_IP.c | 3 +- source/FreeRTOS_UDP_IPv4.c | 3 +- 18 files changed, 92 insertions(+), 78 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d655b3370..18c3ca51df 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -217,9 +217,6 @@ add_compile_options( $<$:-Wno-extra-semi-stmt> $<$:-Wno-missing-noreturn> $<$:-Wno-cast-align> - - # Suppressions required to build clean with GCC. - $<$:-Wno-declaration-after-statement> ) ######################################################################## diff --git a/source/FreeRTOS_DHCP.c b/source/FreeRTOS_DHCP.c index b6037c0858..66d4e2b51b 100644 --- a/source/FreeRTOS_DHCP.c +++ b/source/FreeRTOS_DHCP.c @@ -1378,20 +1378,14 @@ uint8_t * pucUDPPayloadBuffer = NULL; #if ( ipconfigDHCP_REGISTER_HOSTNAME == 1 ) - const char * pucHostName = pcApplicationHostnameHook(); size_t uxNameLength = 0; + const char * pucHostName = pcApplicationHostnameHook(); if( pucHostName != NULL ) { uxNameLength = strlen( pucHostName ); } - uint8_t * pucPtr; - - /* memcpy() helper variables for MISRA Rule 21.15 compliance*/ - const void * pvCopySource; - void * pvCopyDest; - /* Two extra bytes for option code and length. */ uxRequiredBufferSize += ( 2U + uxNameLength ); #endif /* if ( ipconfigDHCP_REGISTER_HOSTNAME == 1 ) */ @@ -1402,6 +1396,8 @@ if( pxNetworkBuffer != NULL ) { + uint8_t * pucIPType; + /* Leave space for the UDP header. */ pucUDPPayloadBuffer = &( pxNetworkBuffer->pucEthernetBuffer[ ipUDP_PAYLOAD_OFFSET_IPv4 ] ); @@ -1410,20 +1406,16 @@ /* coverity[misra_c_2012_rule_11_3_violation] */ pxDHCPMessage = ( ( DHCPMessage_IPv4_t * ) pucUDPPayloadBuffer ); - { - uint8_t * pucIPType; + /* Store the IP type at a known location. + * Later the type must be known to translate + * a payload- to a network buffer. + */ - /* Store the IP type at a known location. - * Later the type must be known to translate - * a payload- to a network buffer. - */ - - /* MISRA Ref 18.4.1 [Usage of +, -, += and -= operators on expression of pointer type]. */ - /* More details at: https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/MISRA.md#rule-184. */ - /* coverity[misra_c_2012_rule_18_4_violation] */ - pucIPType = pucUDPPayloadBuffer - ipUDP_PAYLOAD_IP_TYPE_OFFSET; - *pucIPType = ipTYPE_IPv4; - } + /* MISRA Ref 18.4.1 [Usage of +, -, += and -= operators on expression of pointer type]. */ + /* More details at: https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/MISRA.md#rule-184. */ + /* coverity[misra_c_2012_rule_18_4_violation] */ + pucIPType = pucUDPPayloadBuffer - ipUDP_PAYLOAD_IP_TYPE_OFFSET; + *pucIPType = ipTYPE_IPv4; /* Most fields need to be zero. */ ( void ) memset( pxDHCPMessage, 0x00, sizeof( DHCPMessage_IPv4_t ) ); @@ -1455,7 +1447,7 @@ * it easier to lookup a device in a router's list of DHCP clients. */ /* Point to where the OPTION_END was stored to add data. */ - pucPtr = &( pucUDPPayloadBuffer[ dhcpFIRST_OPTION_BYTE_OFFSET + ( *pxOptionsArraySize - 1U ) ] ); + uint8_t * pucPtr = &( pucUDPPayloadBuffer[ dhcpFIRST_OPTION_BYTE_OFFSET + ( *pxOptionsArraySize - 1U ) ] ); pucPtr[ 0U ] = dhcpIPv4_DNS_HOSTNAME_OPTIONS_CODE; pucPtr[ 1U ] = ( uint8_t ) uxNameLength; @@ -1466,8 +1458,9 @@ */ if( pucHostName != NULL ) { - pvCopySource = pucHostName; - pvCopyDest = &pucPtr[ 2U ]; + /* memcpy() helper variables for MISRA Rule 21.15 compliance*/ + const void * pvCopySource = pucHostName; + void * pvCopyDest = &pucPtr[ 2U ]; ( void ) memcpy( pvCopyDest, pvCopySource, uxNameLength ); } diff --git a/source/FreeRTOS_DHCPv6.c b/source/FreeRTOS_DHCPv6.c index ad946f0a13..97c6cbce2c 100644 --- a/source/FreeRTOS_DHCPv6.c +++ b/source/FreeRTOS_DHCPv6.c @@ -1004,6 +1004,18 @@ static void prvSendDHCPMessage( NetworkEndPoint_t * pxEndPoint ) if( ucMessageType != 0U ) { + /* DHCPv6_Option_IA_for_Prefix_Delegation */ + uint32_t ulIAID = 0x27fe8f95; + uint32_t ulTime_1 = 3600U; + uint32_t ulTime_2 = 5400U; + + /* DHCPv6_Option_IA_Prefix */ + uint32_t ulPreferredLifeTime = 4500U; + uint32_t ulPValidLifeTime = 7200U; + uint8_t ucPrefixLength = ( uint8_t ) pxEndPoint->ipv6_settings.uxPrefixLength; + + struct freertos_sockaddr * pxAddress; + vBitConfig_write_8( &( xMessage ), ucMessageType ); /* 1 Solicit, 3, request */ vBitConfig_write_uc( &( xMessage ), pxDHCPMessage->ucTransactionID, 3 ); @@ -1044,22 +1056,12 @@ static void prvSendDHCPMessage( NetworkEndPoint_t * pxEndPoint ) vBitConfig_write_16( &( xMessage ), 2U ); /* usLength; length is 2 * / */ vBitConfig_write_16( &( xMessage ), 0x0000 ); /* usTime; 00 00 : 0 ms. * / */ - /* DHCPv6_Option_IA_for_Prefix_Delegation */ - uint32_t ulIAID = 0x27fe8f95; - uint32_t ulTime_1 = 3600U; - uint32_t ulTime_2 = 5400U; - vBitConfig_write_16( &( xMessage ), DHCPv6_Option_IA_for_Prefix_Delegation ); /* usOption; Option is 25 */ vBitConfig_write_16( &( xMessage ), 41 ); /* usLength; length is 12 + 29 = 41 */ vBitConfig_write_32( &( xMessage ), ulIAID ); /* 27 fe 8f 95. */ vBitConfig_write_32( &( xMessage ), ulTime_1 ); /* 00 00 0e 10: 3600 sec */ vBitConfig_write_32( &( xMessage ), ulTime_2 ); /* 00 00 15 18: 5400 sec */ - /* DHCPv6_Option_IA_Prefix */ - uint32_t ulPreferredLifeTime = 4500U; - uint32_t ulPValidLifeTime = 7200U; - uint8_t ucPrefixLength = ( uint8_t ) pxEndPoint->ipv6_settings.uxPrefixLength; - vBitConfig_write_16( &( xMessage ), DHCPv6_Option_IA_Prefix ); /* usOption Option is 26 */ vBitConfig_write_16( &( xMessage ), 25 ); /* usLength length is 25 */ vBitConfig_write_32( &( xMessage ), ulPreferredLifeTime ); /* 4500 */ @@ -1085,7 +1087,7 @@ static void prvSendDHCPMessage( NetworkEndPoint_t * pxEndPoint ) xAddress.sin_family = FREERTOS_AF_INET6; xAddress.sin_port = FreeRTOS_htons( ipDHCPv6_SERVER_PORT ); - struct freertos_sockaddr * pxAddress = &( xAddress ); + pxAddress = &( xAddress ); FreeRTOS_printf( ( "DHCP Sending request %u.\n", ucMessageType ) ); ( void ) FreeRTOS_sendto( EP_DHCPData.xDHCPSocket, ( const void * ) xMessage.ucContents, xMessage.uxIndex, 0, pxAddress, sizeof xAddress ); diff --git a/source/FreeRTOS_DNS.c b/source/FreeRTOS_DNS.c index eb8760c67a..2afc9e42a2 100644 --- a/source/FreeRTOS_DNS.c +++ b/source/FreeRTOS_DNS.c @@ -835,6 +835,12 @@ const char * pcHostName ) { NetworkEndPoint_t * pxEndPoint = NULL; + /* If LLMNR is being used then determine if the host name includes a '.' - + * if not then LLMNR can be used as the lookup method. */ + /* For local resolution, mDNS uses names ending with the string ".local" */ + BaseType_t bHasDot = pdFALSE; + BaseType_t bHasLocal = pdFALSE; + const char * pcDot = ( const char * ) strchr( pcHostName, ( int32_t ) '.' ); #if ( ipconfigUSE_MDNS == 1 ) || ( ipconfigUSE_LLMNR == 1 ) BaseType_t xNeed_Endpoint = pdFALSE; @@ -857,12 +863,6 @@ /* Use the DNS port by default, this may be changed later. */ pxAddress->sin_port = dnsDNS_PORT; - /* If LLMNR is being used then determine if the host name includes a '.' - - * if not then LLMNR can be used as the lookup method. */ - /* For local resolution, mDNS uses names ending with the string ".local" */ - BaseType_t bHasDot = pdFALSE; - BaseType_t bHasLocal = pdFALSE; - const char * pcDot = ( const char * ) strchr( pcHostName, ( int32_t ) '.' ); if( pcDot != NULL ) { @@ -1007,9 +1007,10 @@ if( pxEndPoint->bits.bIPv6 == 0U ) { + uint32_t ulIPAddress; uint8_t ucIndex = pxEndPoint->ipv4_settings.ucDNSIndex; configASSERT( ucIndex < ipconfigENDPOINT_DNS_ADDRESS_COUNT ); - uint32_t ulIPAddress = pxEndPoint->ipv4_settings.ulDNSServerAddresses[ ucIndex ]; + ulIPAddress = pxEndPoint->ipv4_settings.ulDNSServerAddresses[ ucIndex ]; if( ( ulIPAddress != 0U ) && ( ulIPAddress != ipBROADCAST_IP_ADDRESS ) ) { @@ -1027,9 +1028,10 @@ if( pxEndPoint->bits.bIPv6 != 0U ) { + const uint8_t * ucBytes; uint8_t ucIndex = pxEndPoint->ipv6_settings.ucDNSIndex; configASSERT( ucIndex < ipconfigENDPOINT_DNS_ADDRESS_COUNT ); - const uint8_t * ucBytes = pxEndPoint->ipv6_settings.xDNSServerAddresses[ ucIndex ].ucBytes; + ucBytes = pxEndPoint->ipv6_settings.xDNSServerAddresses[ ucIndex ].ucBytes; /* Test if the DNS entry is in used. */ if( ( ucBytes[ 0 ] != 0U ) && ( ucBytes[ 1 ] != 0U ) ) @@ -1171,6 +1173,11 @@ if( xDNSBuf.pucPayloadBuffer != NULL ) { + + /* A two-step conversion to conform to MISRA. */ + size_t uxIndex = ipUDP_PAYLOAD_IP_TYPE_OFFSET; + BaseType_t xIndex = ( BaseType_t ) uxIndex; + #if ( ipconfigUSE_LLMNR == 1 ) { if( FreeRTOS_ntohs( pxAddress->sin_port ) == ipLLMNR_PORT ) @@ -1183,10 +1190,6 @@ } #endif - /* A two-step conversion to conform to MISRA. */ - size_t uxIndex = ipUDP_PAYLOAD_IP_TYPE_OFFSET; - BaseType_t xIndex = ( BaseType_t ) uxIndex; - /* Later when translating form UDP payload to a Network Buffer, * it is important to know whether this is an IPv4 packet. */ if( pxAddress->sin_family == ( uint8_t ) FREERTOS_AF_INET6 ) diff --git a/source/FreeRTOS_IP.c b/source/FreeRTOS_IP.c index 4f8949eded..8eb100a75e 100644 --- a/source/FreeRTOS_IP.c +++ b/source/FreeRTOS_IP.c @@ -876,6 +876,7 @@ void * FreeRTOS_GetUDPPayloadBuffer_Multi( size_t uxRequestedSizeBytes, if( pxNetworkBuffer != NULL ) { + uint8_t * pucIPType; size_t uxIndex = ipUDP_PAYLOAD_IP_TYPE_OFFSET; BaseType_t xPayloadIPTypeOffset = ( BaseType_t ) uxIndex; @@ -885,8 +886,6 @@ void * FreeRTOS_GetUDPPayloadBuffer_Multi( size_t uxRequestedSizeBytes, /* Skip 3 headers. */ pvReturn = ( void * ) &( pxNetworkBuffer->pucEthernetBuffer[ uxPayloadOffset ] ); - uint8_t * pucIPType; - /* Later a pointer to a UDP payload is used to retrieve a NetworkBuffer. * Store the packet type at 48 bytes before the start of the UDP payload. */ pucIPType = ( uint8_t * ) pvReturn; diff --git a/source/FreeRTOS_IP_Utils.c b/source/FreeRTOS_IP_Utils.c index dfbc2607ee..9ed395d164 100644 --- a/source/FreeRTOS_IP_Utils.c +++ b/source/FreeRTOS_IP_Utils.c @@ -1070,11 +1070,10 @@ uint16_t usGenerateProtocolChecksum( uint8_t * pucEthernetBuffer, BaseType_t xOutgoingPacket ) { struct xPacketSummary xSet; + DEBUG_DECLARE_TRACE_VARIABLE( BaseType_t, xLocation, 0 ); ( void ) memset( &( xSet ), 0, sizeof( xSet ) ); - DEBUG_DECLARE_TRACE_VARIABLE( BaseType_t, xLocation, 0 ); - #if ( ipconfigHAS_DEBUG_PRINTF != 0 ) { xSet.pcType = "???"; diff --git a/source/FreeRTOS_IPv4_Utils.c b/source/FreeRTOS_IPv4_Utils.c index 5891da2134..b79bdc8de8 100644 --- a/source/FreeRTOS_IPv4_Utils.c +++ b/source/FreeRTOS_IPv4_Utils.c @@ -124,10 +124,11 @@ BaseType_t prvChecksumIPv4Checks( uint8_t * pucEthernetBuffer, if( xReturn == 0 ) { + size_t uxNeeded; /* xIPHeader.usLength is the total length, minus the Ethernet header. */ pxSet->usPayloadLength = FreeRTOS_ntohs( pxSet->pxIPPacket->xIPHeader.usLength ); - size_t uxNeeded = pxSet->usPayloadLength; + uxNeeded = pxSet->usPayloadLength; uxNeeded += ipSIZE_OF_ETH_HEADER; if( uxBufferLength < uxNeeded ) diff --git a/source/FreeRTOS_IPv6_Utils.c b/source/FreeRTOS_IPv6_Utils.c index 848395a89f..0a87fe82e8 100644 --- a/source/FreeRTOS_IPv6_Utils.c +++ b/source/FreeRTOS_IPv6_Utils.c @@ -100,6 +100,8 @@ BaseType_t prvChecksumIPv6Checks( uint8_t * pucEthernetBuffer, } else { + size_t uxNeeded; + /* MISRA Ref 11.3.1 [Misaligned access] */ /* More details at: https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/MISRA.md#rule-113 */ /* coverity[misra_c_2012_rule_11_3_violation] */ @@ -108,7 +110,7 @@ BaseType_t prvChecksumIPv6Checks( uint8_t * pucEthernetBuffer, /* For IPv6, the number of bytes in the protocol is indicated. */ pxSet->usProtocolBytes = ( uint16_t ) ( pxSet->usPayloadLength - uxExtensionHeaderLength ); - size_t uxNeeded = ( size_t ) pxSet->usPayloadLength; + uxNeeded = ( size_t ) pxSet->usPayloadLength; uxNeeded += ipSIZE_OF_ETH_HEADER + ipSIZE_OF_IPv6_HEADER; if( uxBufferLength < uxNeeded ) diff --git a/source/FreeRTOS_ND.c b/source/FreeRTOS_ND.c index d8f6698457..bfb09286b7 100644 --- a/source/FreeRTOS_ND.c +++ b/source/FreeRTOS_ND.c @@ -924,10 +924,11 @@ if( memcmp( pxIPv6Address->ucBytes, pxIPHeader->xSourceAddress.ucBytes, ipSIZE_OF_IPv6_ADDRESS ) == 0 ) { - FreeRTOS_printf( ( "Waiting done\n" ) ); IPStackEvent_t xEventMessage; const TickType_t xDontBlock = ( TickType_t ) 0; + FreeRTOS_printf( ( "Waiting done\n" ) ); + xEventMessage.eEventType = eNetworkRxEvent; xEventMessage.pvData = ( void * ) pxARPWaitingNetworkBuffer; @@ -1269,6 +1270,7 @@ if( xResult == pdPASS ) { + size_t uxIndex; /* A loopback IP-address has a prefix of 128. */ configASSERT( ( uxPrefixLength > 0U ) && ( uxPrefixLength <= ( 8U * ipSIZE_OF_IPv6_ADDRESS ) ) ); @@ -1278,7 +1280,7 @@ } pucSource = ( uint8_t * ) pulRandom; - size_t uxIndex = uxPrefixLength / 8U; + uxIndex = uxPrefixLength / 8U; if( ( uxPrefixLength % 8U ) != 0U ) { diff --git a/source/FreeRTOS_RA.c b/source/FreeRTOS_RA.c index 9f9ef8fc2c..501bbdb4f2 100644 --- a/source/FreeRTOS_RA.c +++ b/source/FreeRTOS_RA.c @@ -642,11 +642,15 @@ { TickType_t uxReloadTime = pdMS_TO_TICKS( 5000U ); + #if ( ipconfigHAS_PRINTF == 1 ) + eRAState_t eRAState; + #endif + configASSERT( pxEndPoint != NULL ); #if ( ipconfigHAS_PRINTF == 1 ) /* Remember the initial state, just for logging. */ - eRAState_t eRAState = pxEndPoint->xRAData.eRAState; + eRAState = pxEndPoint->xRAData.eRAState; #endif if( xDoReset != pdFALSE ) diff --git a/source/FreeRTOS_TCP_IP.c b/source/FreeRTOS_TCP_IP.c index 820aba5f27..aa96c98c96 100644 --- a/source/FreeRTOS_TCP_IP.c +++ b/source/FreeRTOS_TCP_IP.c @@ -650,12 +650,11 @@ { /* Function might modify the parameter. */ const NetworkBufferDescriptor_t * pxNetworkBuffer = pxDescriptor; - + BaseType_t xResult; + configASSERT( pxNetworkBuffer != NULL ); configASSERT( pxNetworkBuffer->pucEthernetBuffer != NULL ); - BaseType_t xResult; - /* MISRA Ref 11.3.1 [Misaligned access] */ /* More details at: https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/MISRA.md#rule-113 */ /* coverity[misra_c_2012_rule_11_3_violation] */ diff --git a/source/FreeRTOS_TCP_IP_IPv6.c b/source/FreeRTOS_TCP_IP_IPv6.c index d5a537d41b..a3743568a0 100644 --- a/source/FreeRTOS_TCP_IP_IPv6.c +++ b/source/FreeRTOS_TCP_IP_IPv6.c @@ -100,6 +100,15 @@ BaseType_t xProcessReceivedTCPPacket_IPV6( NetworkBufferDescriptor_t * pxDescrip { /* Function might modify the parameter. */ NetworkBufferDescriptor_t * pxNetworkBuffer = pxDescriptor; + const ProtocolHeaders_t * pxProtocolHeaders; + FreeRTOS_Socket_t * pxSocket; + uint16_t ucTCPFlags; + uint16_t usLocalPort; + uint16_t usRemotePort; + IPv46_Address_t xRemoteIP; + uint32_t ulSequenceNumber; + uint32_t ulAckNumber; + BaseType_t xResult = pdPASS; configASSERT( pxNetworkBuffer != NULL ); configASSERT( pxNetworkBuffer->pucEthernetBuffer != NULL ); @@ -109,16 +118,14 @@ BaseType_t xProcessReceivedTCPPacket_IPV6( NetworkBufferDescriptor_t * pxDescrip /* MISRA Ref 11.3.1 [Misaligned access] */ /* More details at: https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/MISRA.md#rule-113 */ /* coverity[misra_c_2012_rule_11_3_violation] */ - const ProtocolHeaders_t * pxProtocolHeaders = ( ( const ProtocolHeaders_t * ) + pxProtocolHeaders = ( ( const ProtocolHeaders_t * ) &( pxNetworkBuffer->pucEthernetBuffer[ ipSIZE_OF_ETH_HEADER + uxIPHeaderSizePacket( pxNetworkBuffer ) ] ) ); - FreeRTOS_Socket_t * pxSocket; - uint16_t ucTCPFlags = pxProtocolHeaders->xTCPHeader.ucTCPFlags; - uint16_t usLocalPort = FreeRTOS_htons( pxProtocolHeaders->xTCPHeader.usDestinationPort ); - uint16_t usRemotePort = FreeRTOS_htons( pxProtocolHeaders->xTCPHeader.usSourcePort ); - IPv46_Address_t xRemoteIP; - uint32_t ulSequenceNumber = FreeRTOS_ntohl( pxProtocolHeaders->xTCPHeader.ulSequenceNumber ); - uint32_t ulAckNumber = FreeRTOS_ntohl( pxProtocolHeaders->xTCPHeader.ulAckNr ); - BaseType_t xResult = pdPASS; + + ucTCPFlags = pxProtocolHeaders->xTCPHeader.ucTCPFlags; + usLocalPort = FreeRTOS_htons( pxProtocolHeaders->xTCPHeader.usDestinationPort ); + usRemotePort = FreeRTOS_htons( pxProtocolHeaders->xTCPHeader.usSourcePort ); + ulSequenceNumber = FreeRTOS_ntohl( pxProtocolHeaders->xTCPHeader.ulSequenceNumber ); + ulAckNumber = FreeRTOS_ntohl( pxProtocolHeaders->xTCPHeader.ulAckNr ); /* Check for a minimum packet size. */ if( pxNetworkBuffer->xDataLength < ( ipSIZE_OF_ETH_HEADER + uxIPHeaderSizePacket( pxNetworkBuffer ) + ipSIZE_OF_TCP_HEADER ) ) diff --git a/source/FreeRTOS_TCP_State_Handling_IPv6.c b/source/FreeRTOS_TCP_State_Handling_IPv6.c index 87f25dccc4..d187e5a056 100644 --- a/source/FreeRTOS_TCP_State_Handling_IPv6.c +++ b/source/FreeRTOS_TCP_State_Handling_IPv6.c @@ -162,7 +162,8 @@ FreeRTOS_Socket_t * prvHandleListen_IPV6( FreeRTOS_Socket_t * pxSocket, if( ( xHasSequence != pdFALSE ) && ( pxReturn != NULL ) ) { size_t xCopyLength; - + const IPHeader_IPv6_t * pxIPHeader_IPv6; + /* Map the byte stream onto the ProtocolHeaders_t for easy access to the fields. */ /* MISRA Ref 11.3.1 [Misaligned access] */ @@ -174,7 +175,6 @@ FreeRTOS_Socket_t * prvHandleListen_IPV6( FreeRTOS_Socket_t * pxSocket, pxReturn->pxEndPoint = pxNetworkBuffer->pxEndPoint; pxReturn->bits.bIsIPv6 = pdTRUE_UNSIGNED; - const IPHeader_IPv6_t * pxIPHeader_IPv6; /* MISRA Ref 11.3.1 [Misaligned access] */ /* More details at: https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/MISRA.md#rule-113 */ /* coverity[misra_c_2012_rule_11_3_violation] */ diff --git a/source/FreeRTOS_TCP_Transmission_IPv4.c b/source/FreeRTOS_TCP_Transmission_IPv4.c index ae16eac1db..00dd3fb0ba 100644 --- a/source/FreeRTOS_TCP_Transmission_IPv4.c +++ b/source/FreeRTOS_TCP_Transmission_IPv4.c @@ -150,6 +150,8 @@ void prvTCPReturnPacket_IPV4( FreeRTOS_Socket_t * pxSocket, if( pxNetworkBuffer != NULL ) /* LCOV_EXCL_BR_LINE the 2nd branch will never be reached */ #endif { + NetworkInterface_t * pxInterface; + /* Map the Ethernet buffer onto a TCPPacket_t struct for easy access to the fields. */ /* MISRA Ref 11.3.1 [Misaligned access] */ @@ -284,7 +286,7 @@ void prvTCPReturnPacket_IPV4( FreeRTOS_Socket_t * pxSocket, configASSERT( pxNetworkBuffer->pxEndPoint->pxNetworkInterface != NULL ); configASSERT( pxNetworkBuffer->pxEndPoint->pxNetworkInterface->pfOutput != NULL ); - NetworkInterface_t * pxInterface = pxNetworkBuffer->pxEndPoint->pxNetworkInterface; + pxInterface = pxNetworkBuffer->pxEndPoint->pxNetworkInterface; ( void ) pxInterface->pfOutput( pxInterface, pxNetworkBuffer, xDoRelease ); if( xDoRelease == pdFALSE ) diff --git a/source/FreeRTOS_TCP_Transmission_IPv6.c b/source/FreeRTOS_TCP_Transmission_IPv6.c index e2afb837e4..03c2ef3027 100644 --- a/source/FreeRTOS_TCP_Transmission_IPv6.c +++ b/source/FreeRTOS_TCP_Transmission_IPv6.c @@ -158,6 +158,8 @@ void prvTCPReturnPacket_IPV6( FreeRTOS_Socket_t * pxSocket, if( pxNetworkBuffer != NULL ) /* LCOV_EXCL_BR_LINE the 2nd branch will never be reached */ #endif { + eARPLookupResult_t eResult; + NetworkInterface_t * pxInterface; /* Map the Ethernet buffer onto a TCPPacket_t struct for easy access to the fields. */ /* MISRA Ref 11.3.1 [Misaligned access] */ @@ -230,7 +232,6 @@ void prvTCPReturnPacket_IPV6( FreeRTOS_Socket_t * pxSocket, #endif ( void ) memcpy( xDestinationIPAddress.ucBytes, pxIPHeader->xDestinationAddress.ucBytes, ipSIZE_OF_IPv6_ADDRESS ); - eARPLookupResult_t eResult; eResult = eNDGetCacheEntry( &xDestinationIPAddress, &xMACAddress, &( pxNetworkBuffer->pxEndPoint ) ); @@ -279,7 +280,7 @@ void prvTCPReturnPacket_IPV6( FreeRTOS_Socket_t * pxSocket, configASSERT( pxNetworkBuffer->pxEndPoint->pxNetworkInterface != NULL ); configASSERT( pxNetworkBuffer->pxEndPoint->pxNetworkInterface->pfOutput != NULL ); - NetworkInterface_t * pxInterface = pxNetworkBuffer->pxEndPoint->pxNetworkInterface; + pxInterface = pxNetworkBuffer->pxEndPoint->pxNetworkInterface; ( void ) pxInterface->pfOutput( pxInterface, pxNetworkBuffer, xDoRelease ); if( xDoRelease == pdFALSE ) diff --git a/source/FreeRTOS_TCP_Utils_IPv6.c b/source/FreeRTOS_TCP_Utils_IPv6.c index 96de389d17..c7099d2225 100644 --- a/source/FreeRTOS_TCP_Utils_IPv6.c +++ b/source/FreeRTOS_TCP_Utils_IPv6.c @@ -79,6 +79,7 @@ void prvSocketSetMSS_IPV6( FreeRTOS_Socket_t * pxSocket ) if( pxEndPoint != NULL ) { + IPv6_Type_t eType; /* Compared to IPv4, an IPv6 header is 20 bytes longer. * It must be subtracted from the MSS. */ size_t uxDifference = ipSIZE_OF_IPv6_HEADER - ipSIZE_OF_IPv4_HEADER; @@ -86,7 +87,7 @@ void prvSocketSetMSS_IPV6( FreeRTOS_Socket_t * pxSocket ) /* Because ipconfigTCP_MSS is guaranteed not less than tcpMINIMUM_SEGMENT_LENGTH by FreeRTOSIPConfigDefaults.h, * it's unnecessary to check if xSocket->u.xTCP.usMSS is greater than difference. */ ulMSS = ( uint32_t ) ( ipconfigTCP_MSS - uxDifference ); - IPv6_Type_t eType = xIPv6_GetIPType( &( pxSocket->u.xTCP.xRemoteIP.xIP_IPv6 ) ); + eType = xIPv6_GetIPType( &( pxSocket->u.xTCP.xRemoteIP.xIP_IPv6 ) ); if( eType == eIPv6_Global ) { diff --git a/source/FreeRTOS_UDP_IP.c b/source/FreeRTOS_UDP_IP.c index c659b745bc..5dc967d8f7 100644 --- a/source/FreeRTOS_UDP_IP.c +++ b/source/FreeRTOS_UDP_IP.c @@ -141,6 +141,7 @@ BaseType_t xProcessReceivedUDPPacket( NetworkBufferDescriptor_t * pxNetworkBuffe { /* Returning pdPASS means that the packet was consumed, released. */ BaseType_t xReturn = pdFAIL; + const UDPPacket_t * pxUDPPacket; configASSERT( pxNetworkBuffer != NULL ); configASSERT( pxNetworkBuffer->pucEthernetBuffer != NULL ); @@ -150,7 +151,7 @@ BaseType_t xProcessReceivedUDPPacket( NetworkBufferDescriptor_t * pxNetworkBuffe /* MISRA Ref 11.3.1 [Misaligned access] */ /* More details at: https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/MISRA.md#rule-113 */ /* coverity[misra_c_2012_rule_11_3_violation] */ - const UDPPacket_t * pxUDPPacket = ( ( const UDPPacket_t * ) pxNetworkBuffer->pucEthernetBuffer ); + pxUDPPacket = ( ( const UDPPacket_t * ) pxNetworkBuffer->pucEthernetBuffer ); switch( pxUDPPacket->xEthernetHeader.usFrameType ) { diff --git a/source/FreeRTOS_UDP_IPv4.c b/source/FreeRTOS_UDP_IPv4.c index 0cea8ae5ba..28df47cdf9 100644 --- a/source/FreeRTOS_UDP_IPv4.c +++ b/source/FreeRTOS_UDP_IPv4.c @@ -347,6 +347,7 @@ BaseType_t xProcessReceivedUDPPacket_IPv4( NetworkBufferDescriptor_t * pxNetwork BaseType_t xReturn = pdPASS; FreeRTOS_Socket_t * pxSocket; const UDPPacket_t * pxUDPPacket; + const NetworkEndPoint_t * pxEndpoint; configASSERT( pxNetworkBuffer != NULL ); configASSERT( pxNetworkBuffer->pucEthernetBuffer != NULL ); @@ -357,7 +358,7 @@ BaseType_t xProcessReceivedUDPPacket_IPv4( NetworkBufferDescriptor_t * pxNetwork /* More details at: https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/MISRA.md#rule-113 */ /* coverity[misra_c_2012_rule_11_3_violation] */ pxUDPPacket = ( ( UDPPacket_t * ) pxNetworkBuffer->pucEthernetBuffer ); - const NetworkEndPoint_t * pxEndpoint = pxNetworkBuffer->pxEndPoint; + pxEndpoint = pxNetworkBuffer->pxEndPoint; /* Caller must check for minimum packet size. */ pxSocket = pxUDPSocketLookup( usPort ); From cce51c6aa592ff4684140aed5b8b985216022163 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Fri, 23 Feb 2024 07:19:03 +0000 Subject: [PATCH 2/2] Uncrustify: triggered by comment --- source/FreeRTOS_DHCP.c | 6 +++--- source/FreeRTOS_DHCPv6.c | 18 +++++++++--------- source/FreeRTOS_DNS.c | 3 +-- source/FreeRTOS_IP_Utils.c | 1 + source/FreeRTOS_TCP_IP.c | 2 +- source/FreeRTOS_TCP_IP_IPv6.c | 4 ++-- source/FreeRTOS_TCP_State_Handling_IPv6.c | 2 +- source/FreeRTOS_TCP_Utils_IPv6.c | 1 + 8 files changed, 19 insertions(+), 18 deletions(-) diff --git a/source/FreeRTOS_DHCP.c b/source/FreeRTOS_DHCP.c index 66d4e2b51b..94e2db4cf9 100644 --- a/source/FreeRTOS_DHCP.c +++ b/source/FreeRTOS_DHCP.c @@ -1407,9 +1407,9 @@ pxDHCPMessage = ( ( DHCPMessage_IPv4_t * ) pucUDPPayloadBuffer ); /* Store the IP type at a known location. - * Later the type must be known to translate - * a payload- to a network buffer. - */ + * Later the type must be known to translate + * a payload- to a network buffer. + */ /* MISRA Ref 18.4.1 [Usage of +, -, += and -= operators on expression of pointer type]. */ /* More details at: https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/MISRA.md#rule-184. */ diff --git a/source/FreeRTOS_DHCPv6.c b/source/FreeRTOS_DHCPv6.c index 97c6cbce2c..c61229e5ca 100644 --- a/source/FreeRTOS_DHCPv6.c +++ b/source/FreeRTOS_DHCPv6.c @@ -1052,15 +1052,15 @@ static void prvSendDHCPMessage( NetworkEndPoint_t * pxEndPoint ) } /* DHCPv6_Option_Elapsed_Time */ - vBitConfig_write_16( &( xMessage ), DHCPv6_Option_Elapsed_Time ); /* usOption; Option is 8 * / */ - vBitConfig_write_16( &( xMessage ), 2U ); /* usLength; length is 2 * / */ - vBitConfig_write_16( &( xMessage ), 0x0000 ); /* usTime; 00 00 : 0 ms. * / */ - - vBitConfig_write_16( &( xMessage ), DHCPv6_Option_IA_for_Prefix_Delegation ); /* usOption; Option is 25 */ - vBitConfig_write_16( &( xMessage ), 41 ); /* usLength; length is 12 + 29 = 41 */ - vBitConfig_write_32( &( xMessage ), ulIAID ); /* 27 fe 8f 95. */ - vBitConfig_write_32( &( xMessage ), ulTime_1 ); /* 00 00 0e 10: 3600 sec */ - vBitConfig_write_32( &( xMessage ), ulTime_2 ); /* 00 00 15 18: 5400 sec */ + vBitConfig_write_16( &( xMessage ), DHCPv6_Option_Elapsed_Time ); /* usOption; Option is 8 * / */ + vBitConfig_write_16( &( xMessage ), 2U ); /* usLength; length is 2 * / */ + vBitConfig_write_16( &( xMessage ), 0x0000 ); /* usTime; 00 00 : 0 ms. * / */ + + vBitConfig_write_16( &( xMessage ), DHCPv6_Option_IA_for_Prefix_Delegation ); /* usOption; Option is 25 */ + vBitConfig_write_16( &( xMessage ), 41 ); /* usLength; length is 12 + 29 = 41 */ + vBitConfig_write_32( &( xMessage ), ulIAID ); /* 27 fe 8f 95. */ + vBitConfig_write_32( &( xMessage ), ulTime_1 ); /* 00 00 0e 10: 3600 sec */ + vBitConfig_write_32( &( xMessage ), ulTime_2 ); /* 00 00 15 18: 5400 sec */ vBitConfig_write_16( &( xMessage ), DHCPv6_Option_IA_Prefix ); /* usOption Option is 26 */ vBitConfig_write_16( &( xMessage ), 25 ); /* usLength length is 25 */ diff --git a/source/FreeRTOS_DNS.c b/source/FreeRTOS_DNS.c index 2afc9e42a2..cf3814dba9 100644 --- a/source/FreeRTOS_DNS.c +++ b/source/FreeRTOS_DNS.c @@ -835,6 +835,7 @@ const char * pcHostName ) { NetworkEndPoint_t * pxEndPoint = NULL; + /* If LLMNR is being used then determine if the host name includes a '.' - * if not then LLMNR can be used as the lookup method. */ /* For local resolution, mDNS uses names ending with the string ".local" */ @@ -863,7 +864,6 @@ /* Use the DNS port by default, this may be changed later. */ pxAddress->sin_port = dnsDNS_PORT; - if( pcDot != NULL ) { bHasDot = pdTRUE; @@ -1173,7 +1173,6 @@ if( xDNSBuf.pucPayloadBuffer != NULL ) { - /* A two-step conversion to conform to MISRA. */ size_t uxIndex = ipUDP_PAYLOAD_IP_TYPE_OFFSET; BaseType_t xIndex = ( BaseType_t ) uxIndex; diff --git a/source/FreeRTOS_IP_Utils.c b/source/FreeRTOS_IP_Utils.c index 9ed395d164..dd7210ac7e 100644 --- a/source/FreeRTOS_IP_Utils.c +++ b/source/FreeRTOS_IP_Utils.c @@ -1070,6 +1070,7 @@ uint16_t usGenerateProtocolChecksum( uint8_t * pucEthernetBuffer, BaseType_t xOutgoingPacket ) { struct xPacketSummary xSet; + DEBUG_DECLARE_TRACE_VARIABLE( BaseType_t, xLocation, 0 ); ( void ) memset( &( xSet ), 0, sizeof( xSet ) ); diff --git a/source/FreeRTOS_TCP_IP.c b/source/FreeRTOS_TCP_IP.c index aa96c98c96..e25c5de036 100644 --- a/source/FreeRTOS_TCP_IP.c +++ b/source/FreeRTOS_TCP_IP.c @@ -651,7 +651,7 @@ /* Function might modify the parameter. */ const NetworkBufferDescriptor_t * pxNetworkBuffer = pxDescriptor; BaseType_t xResult; - + configASSERT( pxNetworkBuffer != NULL ); configASSERT( pxNetworkBuffer->pucEthernetBuffer != NULL ); diff --git a/source/FreeRTOS_TCP_IP_IPv6.c b/source/FreeRTOS_TCP_IP_IPv6.c index a3743568a0..386b89e63f 100644 --- a/source/FreeRTOS_TCP_IP_IPv6.c +++ b/source/FreeRTOS_TCP_IP_IPv6.c @@ -119,8 +119,8 @@ BaseType_t xProcessReceivedTCPPacket_IPV6( NetworkBufferDescriptor_t * pxDescrip /* More details at: https://github.com/FreeRTOS/FreeRTOS-Plus-TCP/blob/main/MISRA.md#rule-113 */ /* coverity[misra_c_2012_rule_11_3_violation] */ pxProtocolHeaders = ( ( const ProtocolHeaders_t * ) - &( pxNetworkBuffer->pucEthernetBuffer[ ipSIZE_OF_ETH_HEADER + uxIPHeaderSizePacket( pxNetworkBuffer ) ] ) ); - + &( pxNetworkBuffer->pucEthernetBuffer[ ipSIZE_OF_ETH_HEADER + uxIPHeaderSizePacket( pxNetworkBuffer ) ] ) ); + ucTCPFlags = pxProtocolHeaders->xTCPHeader.ucTCPFlags; usLocalPort = FreeRTOS_htons( pxProtocolHeaders->xTCPHeader.usDestinationPort ); usRemotePort = FreeRTOS_htons( pxProtocolHeaders->xTCPHeader.usSourcePort ); diff --git a/source/FreeRTOS_TCP_State_Handling_IPv6.c b/source/FreeRTOS_TCP_State_Handling_IPv6.c index d187e5a056..60a1682075 100644 --- a/source/FreeRTOS_TCP_State_Handling_IPv6.c +++ b/source/FreeRTOS_TCP_State_Handling_IPv6.c @@ -163,7 +163,7 @@ FreeRTOS_Socket_t * prvHandleListen_IPV6( FreeRTOS_Socket_t * pxSocket, { size_t xCopyLength; const IPHeader_IPv6_t * pxIPHeader_IPv6; - + /* Map the byte stream onto the ProtocolHeaders_t for easy access to the fields. */ /* MISRA Ref 11.3.1 [Misaligned access] */ diff --git a/source/FreeRTOS_TCP_Utils_IPv6.c b/source/FreeRTOS_TCP_Utils_IPv6.c index c7099d2225..789bfe6ace 100644 --- a/source/FreeRTOS_TCP_Utils_IPv6.c +++ b/source/FreeRTOS_TCP_Utils_IPv6.c @@ -80,6 +80,7 @@ void prvSocketSetMSS_IPV6( FreeRTOS_Socket_t * pxSocket ) if( pxEndPoint != NULL ) { IPv6_Type_t eType; + /* Compared to IPv4, an IPv6 header is 20 bytes longer. * It must be subtracted from the MSS. */ size_t uxDifference = ipSIZE_OF_IPv6_HEADER - ipSIZE_OF_IPv4_HEADER;