From 42f894451e8e11d8677831174db8f74645be4106 Mon Sep 17 00:00:00 2001 From: Levente Meszaros Date: Mon, 14 Oct 2024 12:17:47 +0200 Subject: [PATCH] all: Fixed incorrect dereference introduced with ccdc34a50f3a7fa5b87471a9d08dfd572f699304. --- src/inet/networklayer/ipv4/Ipv4HeaderSerializer.cc | 2 +- src/inet/transportlayer/sctp/SctpAssociationUtil.cc | 6 +++--- src/inet/transportlayer/sctp/SctpHeaderSerializer.cc | 2 +- src/inet/transportlayer/tcp_common/TcpHeaderSerializer.cc | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/inet/networklayer/ipv4/Ipv4HeaderSerializer.cc b/src/inet/networklayer/ipv4/Ipv4HeaderSerializer.cc index 33fb91fea22..154632fce1c 100644 --- a/src/inet/networklayer/ipv4/Ipv4HeaderSerializer.cc +++ b/src/inet/networklayer/ipv4/Ipv4HeaderSerializer.cc @@ -155,7 +155,7 @@ const Ptr Ipv4HeaderSerializer::deserialize(MemoryInputStream& stream) co uint8_t *buffer = new uint8_t[B(IPv4_MIN_HEADER_LENGTH).get()]; stream.readBytes(buffer, IPv4_MIN_HEADER_LENGTH); auto ipv4Header = makeShared(); - const struct ip& iphdr = *static_cast((void *)&buffer); + const struct ip& iphdr = *static_cast((void *)buffer); B totalLength, headerLength; ipv4Header->setVersion(iphdr.ip_v); diff --git a/src/inet/transportlayer/sctp/SctpAssociationUtil.cc b/src/inet/transportlayer/sctp/SctpAssociationUtil.cc index 4250da757ba..f2b8221b3fb 100644 --- a/src/inet/transportlayer/sctp/SctpAssociationUtil.cc +++ b/src/inet/transportlayer/sctp/SctpAssociationUtil.cc @@ -1449,8 +1449,8 @@ static uint32_t compressGaps(const SctpGapList *gapList, const SctpGapList::GapT const uint16_t startOffset = gapList->getGapStart(type, i) - last; const uint16_t stopOffset = gapList->getGapStop(type, i) - gapList->getGapStart(type, i); const size_t lastOutputPos = outputPos; - if ((writeCompressedValue((uint8_t *)&compressedDataBuffer, compressedDataBufferSize, outputPos, startOffset) == false) || - (writeCompressedValue((uint8_t *)&compressedDataBuffer, compressedDataBufferSize, outputPos, stopOffset) == false) || + if ((writeCompressedValue(compressedDataBuffer, compressedDataBufferSize, outputPos, startOffset) == false) || + (writeCompressedValue(compressedDataBuffer, compressedDataBufferSize, outputPos, stopOffset) == false) || (outputPos + 1 > space)) { outputPos = lastOutputPos; @@ -1459,7 +1459,7 @@ static uint32_t compressGaps(const SctpGapList *gapList, const SctpGapList::GapT entriesWritten++; last = gapList->getGapStop(type, i); } - ASSERT(writeCompressedValue((uint8_t *)&compressedDataBuffer, compressedDataBufferSize, outputPos, 0x00) == true); + ASSERT(writeCompressedValue(compressedDataBuffer, compressedDataBufferSize, outputPos, 0x00) == true); space = outputPos; delete [] compressedDataBuffer; diff --git a/src/inet/transportlayer/sctp/SctpHeaderSerializer.cc b/src/inet/transportlayer/sctp/SctpHeaderSerializer.cc index 7c8cd8535fe..0be20df74cd 100644 --- a/src/inet/transportlayer/sctp/SctpHeaderSerializer.cc +++ b/src/inet/transportlayer/sctp/SctpHeaderSerializer.cc @@ -1128,7 +1128,7 @@ const Ptr SctpHeaderSerializer::deserialize(MemoryInputStream& stream) co stream.readBytes(buffer, B(bufsize)); auto dest = makeShared(); - struct common_header *common_header = (struct common_header *)((void *)&buffer); + struct common_header *common_header = (struct common_header *)((void *)buffer); int32_t tempChecksum = common_header->checksum; common_header->checksum = 0; int32_t chksum = SctpChecksum::checksum((unsigned char *)common_header, bufsize); diff --git a/src/inet/transportlayer/tcp_common/TcpHeaderSerializer.cc b/src/inet/transportlayer/tcp_common/TcpHeaderSerializer.cc index e1924fd383c..84e955cdfc5 100644 --- a/src/inet/transportlayer/tcp_common/TcpHeaderSerializer.cc +++ b/src/inet/transportlayer/tcp_common/TcpHeaderSerializer.cc @@ -160,7 +160,7 @@ const Ptr TcpHeaderSerializer::deserialize(MemoryInputStream& stream) con uint8_t *buffer = new uint8_t[B(TCP_MIN_HEADER_LENGTH).get()]; stream.readBytes(buffer, TCP_MIN_HEADER_LENGTH); auto tcpHeader = makeShared(); - const struct tcphdr& tcp = *static_cast((void *)&buffer); + const struct tcphdr& tcp = *static_cast((void *)buffer); ASSERT(B(sizeof(tcp)) == TCP_MIN_HEADER_LENGTH); // fill Tcp header structure