2024-09-04 Jerry Lundström Release 1.7.3 This patch release fixes memory alignment issues and the handling of TCP segments. Many thanks to Ray Bellis (ISC) for reporting this and helping greatly with fixing it! d8a06a3 C++11 8c99466 Memory align, TCP assemble 2024-08-29 Jerry Lundström Release 1.7.2 This patch release fixes various issues reported by CI/code analysis tools. Fixes: - `RefCountString`: Use anonymous array for `data` - `sql`: Fix heap overflow [[sonarcloud](https://sonarcloud.io/project/issues?open=AZF-b0jIXv-Y5-GmvUlN&id=dns-oarc%3APacketQ)] - Fix CodeQL issues: - https://github.com/DNS-OARC/PacketQ/security/code-scanning/35 - https://github.com/DNS-OARC/PacketQ/security/code-scanning/37 - https://github.com/DNS-OARC/PacketQ/security/code-scanning/38 - https://github.com/DNS-OARC/PacketQ/security/code-scanning/39 - https://github.com/DNS-OARC/PacketQ/security/code-scanning/40 - https://github.com/DNS-OARC/PacketQ/security/code-scanning/5 68b5385 Cleanup 1dfd47b CodeQL, code format 6224234 CodeQL fixes 6771f3a Copyright 3283c43 Heap overflow 1ff69df Badges d4e93ec Workflow 75283cc Doc 25adefa Add CodeQL workflow for GitHub code scanning bb7be53 Fix COPR 2022-06-02 Jerry Lundström Release 1.7.1 This patch release fixes a bug in the domain name parsing that cuts off very long names. 4ec95e7 FQDN parsing 2022-04-13 Jerry Lundström Release 1.7.0 This release adds two new columns for the number of labels in the query and in the first answer, and two new functions for looking up country code and autonomous system number (ASN) of addresses using MaxMind databases (see `FUNCTIONS.md` on how to specify database to use). - New column `qlabels`, number of labels in `qname` - New column `alabels`, number of labels in `aname` - New function `CC(address)`, the 2-letter ISO country code associated with the address - New function `ASN(address)`, the ASN associated with the address 64d1d72 Couting labels b3b970d Adding field qlabel_count as the count of the number of labels in the query 0866f45 auto 53c27ca SonarCloud, LGTM, packages 1e5f986 MaxMind DB 3967c31 Adding country-code and ASN lookup from MaxMind DB as functions on address strings 2022-03-10 Jerry Lundström Release 1.6.0 This release adds a new SQL function for masking addresses and adds support for Pcap's LINUX_SLL link layer. The new `netmask()` function (added by Ken Renard @kdrenard) is used as follows: `NETMASK(address [, v4_mask_length [, v6_mask_length]])` Other fixes: - `packet_handler`: Clean up header parsing, size checks etc - Remove own defines of ether/proto types and don't overlap `struct in6_addr` ae211e6 LINUX_SLL, netmask(), ether types d847c97 Adding Netmask description to FUNCTIONS.md 4be804d Adding Netmask function. Usage "netmask ([, [, ]])" 2021-11-05 Jerry Lundström Release 1.5.0 This release fixes issues with CSV and JSON w.r.t. quoted strings. CSV output now conforms to RFC4180 and JSON output conforms to RFC8259. Also added a new option (`--rfc1035`) to output and quote domain names as described in RFC1035. Other changes: - Update debian control files - Fix typo in `--help` text - Fix OpenBSD clang++ compiler warnings - `Output::add_int()`: Fix potential memory overwrite 8206e0f OpenBSD clang warnings 6c1247f Code format d6c82d4 New option to escape DNS names 2bf6f26 Fix typo in --help around --xml parameter 9c95d15 Conform to CSV/JSON RFCs feb0596 debhelper be37ad0 Bye Travis 2020-10-23 Jerry Lundström Release 1.4.3 This release updates the DNS resource record types list with the new types SVCB and HTTPS. It also fixes a lot of issues reported by code analysis and adds code coverage tests. 0ddbc42 Info, Travis, configure 37a8136 Add SVCB, HTTPS rrtypes 6188935 m4 c159904 Coverage 7907eb4 Documentation, sonar 2fe937a Badges 90a5e55 LGTM fae992a COPR 2020-03-02 Jerry Lundström Release 1.4.2 Updated list of DNS resource types and work on CI and packaging. Commits: 4bdb9e3 Add missing rr types 7c529ed README d610061 COPR, spec 96763d8 Package 5aa5984 Funding 377be2d spec a0b5fb7 Travis-CI 2017-11-09 Jerry Lundström Release 1.4.1 Fixed an issue with the in-memory representation of DNS records which was not initialized correctly and could cause the reuse of old data, especially if the record was incomplete (such as FormErr). Commits: 6a790e6 Fix #61: Make sure variables are initialized ed37b88 Update Murmur location 5afb576 Update code format and move Murmur into it's own dir 2017-07-11 Jerry Lundström Release 1.4.0 This release adds new fields for IP version and EDNS0 Client Subnet along with documentation updates, new usage (`--help`) and a buffer overflow check. Rework of the way OPT records are parsed has been done to make it easier to add support for other EDNS options in the future. New fields: - `ip_version`: The IP version as an int (4/6) - `edns0_ecs`: A bool that is true if Client Subnet (RFC7871) was found - `edns0_ecs_family`: An int with the address family - `edns0_ecs_source`: An int with the source prefix length - `edns0_ecs_scope`: An int with the scope prefix length - `edns0_ecs_address`: A textual representation of the address Bugfix: - `get_ushort()` in DNS parsing was not checking length of buffer before accessing it. Commits: 0e7c34a Rewrote usage, add option descriptions, tables and fields 3943dda Update documentation and tests f4b9464 Add IP_Version 0b309e6 ECS addresses and OPT RR parsing 875fd60 Correct type in documentation also b5a91b7 Damn the common keyboard sequences... 358b9af Buf overflow check, move OPT RR parsing, rework EDNS0 ECS d38fffc Add EDNS option codes and EDNS Client Subnet (ECS) support 2017-06-02 Jerry Lundström Release 1.3.1 This release add packaging files for DEB and RPM distributions and fixes a couple of bugs: - ICMP code to fill the tables was wrong and created segfault using normal select, aggregation or group functions. The code has been rewritten to work as the DNS code does and ICMP tests have been added. - Historically PacketQ parses all resource records but only saves the first and last record, this would overwrite EDNS information if it was not the first or last record. This has been fixed by saving the EDNS information as it is found. Thanks to Anand Buddhdev (RIPE NCC) and Daniel Stirnimann (SWITCH) for providing PCAPs to help resolve the bugs. Commits: 9c2627f Fix CID 1439421 5423c1d Fix #17: Save EDNS information when it's found ecb166e Fix #48: ICMP parsing and a little better memory handling 0052024 Fix #45: Add packaging files 2017-05-23 Jerry Lundström Release 1.3.0 First release under DNS-OARC management with license changed to GPL v3.0, minor version jump to not conflict with forked repositories that increased the version themselves. Software now using Travis-CI and Jenkins to compile and test under Debian, Ubuntu, CentOS, FreeBSD and OpenBSD. Coverity Scan used for code analysis and 30 defects have been solved. Bug fixes / enhancements: - Big endian supported correctly - Check data length when processing TCP/UDP packets - Support VLAN-tagged packets - Support for older compilers (CentOS 6) - Prevent "time of check, time of use" - Use `snprintf()` instead of `sprinf()` Commits: 6782f1f libpcap is not needed 23a1ca0 Add more 'order by' in tests to ahve concurrent results f14ab5d Run tests in Travis also 1a0c98a Add test for bigendian PCAP 64ee5a8 - fixed reading of big-endian pcap files (including gzipped pcap) - added sample-bigendian.pcap.gz dd6ab57 Add test based on the extended regression tests 27518c5 More regression tests d889228 Updated regression-test.sh to make the ordering of test query results more consistent, to avoid false positives. d157fef Expanded the regression tests. b3df6c2 Added checks for bad TCP and UDP packet lengths (which could cause malloc requests for humongous amounts of memory...) 2e46729 Added support for VLAN-tagged ethertypes. 10ae2d6 Fix #20: Support CentOS 6 compiler (and hopefully RHEL6 also) e7a8163 Format code using `clang-format` a9ae0fe Change namespace to `packetq` and uniform header defines 6ab0fde Add Coverity badge 63b480b Use `open()`, `fstat()` and `fdopen()` to prevent "time of check, time of use" problem 446a5bf Fix CIDs 01be348 Fix CIDs d11a61f Use `snprintf()` 0bc8e57 Add regression test (from example) for all output formats 09b9037 Move wiki documentation into the repository 5e41dbb Update README.md 6b2263f Add dependencies 9cd6e5a Add Travis-CI badge cf582f8 Add Travis-CI d7eaa55 Cleanup and license change 2014-04-23 Roger Murray Release 1.1.11 This release and prior releases was not documented here, see repository for more information.