-
Notifications
You must be signed in to change notification settings - Fork 723
Open
Description
Hello,
I just observer this from the UBSanitizer(GCC: -fsanitize=undefined):
/home/.../pcap++-src/Packet++/header/Packet.h:347:8: runtime error: member access within address 0x79e286800cb0 which does not point to an object of type 'Packet'
0x79e286800cb0: note: object has invalid vptr
00 00 00 00 10 98 85 00 00 00 00 00 60 0c 80 86 e2 79 00 00 e0 b1 00 00 60 50 00 00 00 b3 00 00
^~~~~~~~~~~~~~~~~~~~~~~
invalid vptr
/home/.../pcap++-src/Packet++/header/Packet.h:112:22: runtime error: member call on address 0x79e286800cb0 which does not point to an object of type 'Packet'
0x79e286800cb0: note: object has invalid vptr
00 00 00 00 10 98 85 00 00 00 00 00 60 0c 80 86 e2 79 00 00 e0 b1 00 00 60 50 00 00 00 b3 00 00
^~~~~~~~~~~~~~~~~~~~~~~
invalid vptr
That implies unaligned memory access (which slows down the program most of the times).
I am just reading a compressed pcapng file using these functions only:
pcpp::PcapNgFileReaderDevice reader(filePath.data());
reader.open();
pcpp::RawPacket rawPacket;
reader.getNextPacket(rawPacket);
pcpp::Packet parsedPacket(std::addressof(rawPacket));
parsedPacket.isPacketOfType(pcpp::TCP);
tcpLayer->getLayerPayloadSize();
udpLayer->getLayerPayload();
parsedPacket.getLayerOfType<pcpp::TcpLayer>();Also I get multiple warnings of these types:
-Weffc++
-Wsuggest-override
-Wconversion
-Wpedantic
-Wold-style-castwhen I include these files:
#include <Packet.h>
#include <UdpLayer.h>
#include <TcpLayer.h>
#include <PcapFileDevice.h>It would be nice if these can get fixed somehow...
Thank You.
Metadata
Metadata
Assignees
Labels
No labels