Flawfinder version 2.0.10, (C) 2001-2019 David A. Wheeler. Number of rules (primarily dangerous function names) in C/C++ ruleset: 223 Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/tests/anonprimitives/AnonTester.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/tests/anonprimitives/AnonTester.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/LinuxCookedCaptureTransformation.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/EthernetPacketTransformation.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/UdpPacketTransformation.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/UdpLitePacketTransformation.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/IPv4PacketTransformation.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/PayloadTransformation.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/UdpLitePacketConfigurator.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/PseudoheaderAwareTransformation.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/Addresses.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/IPv4PacketTransformation.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/UdpPacketTransformation.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/PayloadTransformation.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/IcmpPacketTransformation.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/VlanTagTransformation.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/ArpPacketTransformation.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/ErrorCodes.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/VlanTagTransformation.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/IPv6PacketTransformation.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/UdpLitePacketTransformation.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/EthernetPacketTransformation.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/UdpLitePacketConfigurator.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/IPv6PacketTransformation.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/ICMPv6PacketTransformation.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/ErrorCodes.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/IcmpPacketTransformation.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/DefaultTransformationsConfigurator.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/TcpPacketTransformation.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/TransformationsConfigurator.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/LinuxCookedCaptureTransformation.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/Transformation.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/ArpPacketTransformation.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/TransformationsConfigurator.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/TcpPacketTransformation.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/Transformation.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/ICMPv6PacketTransformation.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/transformations/DefaultTransformationsConfigurator.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonConstOverwriteRange.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonCryptoPan.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonHashSha256_Nettle.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonBroadcastHandler.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonHashSha1.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonContinuousChar.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonConstOverwriteRange.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonBytewiseHashSha1.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonBytewiseHashHmacSha1.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonBytewiseHashHmacSha1.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonContinuousChar.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonBytewise.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonKnownProtocolHandler.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonRandomize.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonKnownEthertypeHandler.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonKnownEthertypeHandler.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonWhitenoise.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonBytewiseHashSha1.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonConstOverwrite.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonShuffle.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonHashSha1_Nettle.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonIdentity.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonBroadcastHandler.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonRandomize.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonShorten.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonHashHmacSha1_Nettle.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonPrimitive.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonHashSha256.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonHashHmacSha1.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonConstOverwrite.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonIdentity.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonKnownProtocolHandler.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonShuffle.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonCryptoPan.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonWhitenoise.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonBytewise.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonPrimitive.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonShorten.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/PktAnon.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/RandomNumberGenerator.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/PktAnonConfig.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/optmacros.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/RandomNumberGenerator.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/PHF.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/AnonFactory.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/PktAnonConfig.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/PHT.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/HardCodedConfig.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/ProtocolUtils.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/Checksum.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/log.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/AnonFactory.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/debug.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/Checksum.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/HardCodedConfig.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/ConfigSAXParser.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/PktAnonC.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/ConfigSAXParser.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/Params.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/LibpcapOutputSource.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/chronometer.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/SocketOutput.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/OutputSource.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/console_utils.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/includes.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/RuntimeFactory.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/IstreamRecordsHandler.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/PktAnonRuntime.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/SocketOutput.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/OstreamOutput.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/Stats.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/OstreamOutput.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/globals.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/Main.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/PcapUtils.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/console_utils.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/LibpcapInjectOutput.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/IstreamRecordsHandler.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/PktAnonRuntime.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/LibpcapDumpOutput.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/RawSocketRecordsHandler.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/LibpcapRecordsHandler.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/LibpcapRecordsHandler.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/LibpcapInjectOutput.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/PcapHeaders.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/RecordsHandler.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/RawSocketRecordsHandler.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/LibpcapDumpOutput.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/RuntimeConfig.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/RuntimeConfig.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/RuntimeFactory.cpp Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/Utils.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/include/PktAnon.h Examining data/pktanon-2~git20160407.0.2bde4f2+dfsg/include/PktAnonC.h FINAL RESULTS: data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonHashHmacSha1_Nettle.cpp:30:5: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy ( ( char* ) key, hmackey.c_str () ); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonHashHmacSha1_Nettle.cpp:32:5: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy ( ( char* ) key, hmackey.c_str() ); data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/RawSocketRecordsHandler.cpp:86:5: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy ( ethreq.ifr_name, ifname ); data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/console_utils.cpp:82:13: [3] (buffer) getopt_long: Some older implementations do not protect against internal buffer overflows (CWE-120, CWE-20). Check implementation on installation, or limit the size of all string inputs. opt = ::getopt_long ( argc, argv, short_options, long_options, &option_index ); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonBroadcastHandler.cpp:37:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(dst_buff, src_buff, len); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonBytewise.cpp:21:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy ( anonbytes, other.anonbytes, 256*sizeof ( unsigned char ) ); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonBytewise.h:23:12: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char anonbytes[256]; data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonConstOverwriteRange.cpp:53:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(dst_buff, src_buff, len); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonCryptoPan.cpp:39:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&orig, buf, sizeof(UINT32)); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonCryptoPan.cpp:42:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(buf, &orig, sizeof(UINT32)); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonHashHmacSha1_Nettle.cpp:62:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy ( ( unsigned char* ) buf + pos, buf, std::min ( remaining, SHA1_DIGEST_SIZE ) ); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonHashHmacSha1_Nettle.cpp:90:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy ( ( unsigned char* ) dst_buff + pos, dst_buff, std::min ( remaining, SHA1_DIGEST_SIZE ) ); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonHashSha1_Nettle.cpp:42:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy ( (unsigned char*) buf + pos, buf, std::min (remaining, SHA1_DIGEST_SIZE)); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonHashSha1_Nettle.cpp:68:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy ( (unsigned char*) dst_buff + pos, dst_buff, std::min (remaining, SHA1_DIGEST_SIZE)); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonHashSha256_Nettle.cpp:38:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy ( ( unsigned char* ) buf + pos, buf, std::min ( remaining, SHA256_DIGEST_SIZE ) ); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonHashSha256_Nettle.cpp:64:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy ( ( unsigned char* ) dst_buff + pos, dst_buff, std::min ( remaining, SHA256_DIGEST_SIZE ) ); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonIdentity.cpp:26:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(dst_buff, src_buff, len); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonKnownEthertypeHandler.cpp:20:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(dst_buff, src_buff, len); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonKnownProtocolHandler.cpp:20:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(dst_buff, src_buff, len); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonPrimitive.cpp:51:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(dst_buff, src_buff, len); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonShorten.cpp:52:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy ( dst_buff, src_buff, std::min ( newlen, len ) ); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonShuffle.cpp:31:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy ( dst_buff, src_buff, len ); data/pktanon-2~git20160407.0.2bde4f2+dfsg/libpktanon/anonprimitives/AnonWhitenoise.cpp:76:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(dst_buff, src_buff, len); data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/LibpcapDumpOutput.cpp:22:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char errbuf[PCAP_ERRBUF_SIZE]; data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/LibpcapInjectOutput.cpp:20:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char errbuf[PCAP_ERRBUF_SIZE]; data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/LibpcapRecordsHandler.cpp:39:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char errbuf[PCAP_ERRBUF_SIZE]; data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/LibpcapRecordsHandler.cpp:150:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy ( &transformed_packet->pkt_header, pkt_header, sizeof ( struct pcap_pkthdr ) ); data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/SocketOutput.cpp:74:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy ( &s_addr.sin6_addr, &sock_addr.ip6_addr, sizeof ( struct in6_addr ) ); data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/console_utils.cpp:93:24: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). snaplen = std::atoi ( optarg ); data/pktanon-2~git20160407.0.2bde4f2+dfsg/tests/anonprimitives/AnonTester.cpp:45:14: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). return atoi ( &c ); data/pktanon-2~git20160407.0.2bde4f2+dfsg/tests/anonprimitives/AnonTester.cpp:103:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char dst_buff[src_len +1]; data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/IstreamRecordsHandler.cpp:67:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). input_stream->read ( ( char* ) file_header, sizeof ( PCAP_FILE_HEADER ) ); data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/IstreamRecordsHandler.cpp:98:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). input_stream->read ( ( char* ) &record_header, sizeof ( PCAP_REC_HEADER ) ); data/pktanon-2~git20160407.0.2bde4f2+dfsg/src/IstreamRecordsHandler.cpp:106:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). input_stream->read ( ( char* ) original_packet, pkt_snaplen ); ANALYSIS SUMMARY: Hits = 34 Lines analyzed = 8815 in approximately 0.23 seconds (38959 lines/second) Physical Source Lines of Code (SLOC) = 5520 Hits@level = [0] 2 [1] 3 [2] 27 [3] 1 [4] 3 [5] 0 Hits@level+ = [0+] 36 [1+] 34 [2+] 31 [3+] 4 [4+] 3 [5+] 0 Hits/KSLOC@level+ = [0+] 6.52174 [1+] 6.15942 [2+] 5.61594 [3+] 0.724638 [4+] 0.543478 [5+] 0 Dot directories skipped = 1 (--followdotdir overrides) Minimum risk level = 1 Not every hit is necessarily a security vulnerability. There may be other security vulnerabilities; review your code! See 'Secure Programming HOWTO' (https://dwheeler.com/secure-programs) for more information.