소스 검색

Fixes wrong if again

Signed-off-by: Martin Melik Merkumians <melik-merkumians@acin.tuwien.ac.at>
Martin Melik Merkumians 5 년 전
부모
커밋
741ec987b4
2개의 변경된 파일4개의 추가작업 그리고 2개의 파일을 삭제
  1. 3 1
      source/src/ports/udp_protocol.c
  2. 1 1
      source/tests/ports/udp_protocol_tests.cpp

+ 3 - 1
source/src/ports/udp_protocol.c

@@ -74,7 +74,9 @@ uint16_t UDPHeaderCalculateChecksum(const void *udp_packet,
     udp_packet_words++;
   }
 
-  if (i > 1) {
+  OPENER_ASSERT( (0 == i) || (1 == i) ); /* data processed */
+
+  if (i > 0) {
     checksum += (*( (uint8_t *)udp_packet_words ) << 8);
     i--;
   }

+ 1 - 1
source/tests/ports/udp_protocol_tests.cpp

@@ -99,7 +99,7 @@ TEST(UdpProtocol, CalculateChecksumOddLength) {
                                                  OPENER_UDP_HEADER_LENGTH + 13,
                                                  source_addr,
                                                  destination_addr);
-  CHECK_EQUAL(0xE991, checksum); // Aquired via the function under test - correctness verified via Wireshark
+  CHECK_EQUAL(0xD591, checksum); // Aquired via the function under test - correctness verified via Wireshark
 }
 
 TEST(UdpProtocol, CalculateChecksumEvenLength) {