0.61.0-18 | 2023-12-14 19:59:32 -0800 * CI updates (Christian Kreibich, Corelight) - Remove Fedora 36 & 37, add 38 & 39 - Remove Ubuntu 18 - Remove macOS Monterey, add Sonoma - Remove openSUSE Leap 15.4, add 15.5 - Add Debian 12 - Take FreeBSD 14 out of test-only mode, bump 13.1 to 13.2, remove 12 0.61.0-16 | 2023-11-06 13:33:30 -0700 * Remove ubuntu 22.10 build (Tim Wojtulewicz, Corelight) * Update .git-blame-ignore-revs (Tim Wojtulewicz, Corelight) * Add cmake-format and typos pre-commit configs (Tim Wojtulewicz, Corelight) * Reformat C++ code in Spicy style (Tim Wojtulewicz, Corelight) 0.61.0-11 | 2023-08-03 09:35:16 -0700 * Remove usage of FindRequiredPackage (Tim Wojtulewicz, Corelight) 0.61.0-9 | 2023-07-02 14:52:25 -0700 * Add /J flag on Windows to force unsigned char (Tim Wojtulewicz, Corelight) * Pass -funsigned-char flag during compilation (Tim Wojtulewicz, Corelight) 0.61.0-6 | 2023-06-22 11:02:06 -0700 * Force -std=c++17 mode for cmake targets, remove use of RequireCXX17.cmake (Tim Wojtulewicz, Corelight) * Require CMake 3.15.0 to build, similar to the recent changes to zeek and broker (Tim Wojtulewicz, Corelight) 0.61.0-2 | 2023-05-31 14:19:26 +0200 * Remove vendored CMake files from repo (Tim Wojtulewicz, Corelight) 0.61.0 | 2023-05-23 10:52:37 -0700 * Don't output comment for &let/&withinput if no such fields exist (Tim Wojtulewicz, Corelight) 0.60.0-14 | 2023-02-22 07:33:54 -0700 * Include stdint.h early to prevent redefinition of int type macros (Tim Wojtulewicz) * Remove argument from BINPAC_LSAN_DISABLE macro to fix warning on Windows (Tim Wojtulewicz) 0.60.0-11 | 2023-02-07 09:39:26 -0700 * Generate range-based for loops for array cleanup (Tim Wojtulewicz, Corelight) * Avoid initializing array length variables twice in generated code (Tim Wojtulewicz, Corelight) * Mark overridden methods with 'override' (Tim Wojtulewicz, Corelight) * Remove blank setup.py file (Tim Wojtulewicz, Corelight) * Fix bad rendering at the top of the README (Tim Wojtulewicz, Corelight) * Add final keyword to class definitions (Tim Wojtulewicz, Corelight) * Use nullptr in generated code (Tim Wojtulewicz, Corelight) * Apply clang-tidy's modernize-use-nullptr check (Tim Wojtulewicz, Corelight) * Add clang-tidy configuration (Tim Wojtulewicz, Corelight) * Add config for Cirrus (Tim Wojtulewicz, Corelight) 0.60.0 | 2023-02-01 15:43:17 -0700 * Tag version 0.60.0 (Tim Wojtulewicz, Corelight) 0.59.0-27 | 2022-12-15 14:38:29 -0700 * address linter warnings about use of sprintf() (Vern Paxson, Corelight) 0.59.0-20 | 2022-10-26 07:59:29 -0700 * Only adding subdir if running standalone (Tomer Lev) * Additional Windows fixes. Fixed wrong MSVC macro definition and std::filesystem invocation. Linking to libunistd library (Tomer Lev) 0.59.0-16 | 2022-10-19 14:46:47 -0700 * pac_scan: Exit with failure for include errors (Arne Welzel, Corelight) Elsewhere (zeek/zeek#2482), it was observed that when binpac encounters include failures, it still exits with 0 indicating success. Subsequent compilation of the produced .h and .cc files likely fails. Exit with 1 on include errors to make pin pointing issues easier by having make/ninja stop earlier. 0.59.0-14 | 2022-10-19 14:45:06 -0700 * Add pre-commit GitHub workflow (Tim Wojtulewicz, Corelight) 0.59.0-12 | 2022-10-19 14:43:43 -0700 * Wrap native dirname() call in ifdef, call std::filesystem on Windows (Tim Wojtulewicz, Corelight) 0.59.0-10 | 2022-10-18 10:14:08 -0700 * Bumped cmake submodule commit (Tomer Lev) * Adapted binpac to compile with MSVC for Windows environment. (Elad Solomon) 0.59.0-6 | 2022-07-07 12:22:26 -0700 * Apply bits of nadi-bittorrent patch that aren't applied (Tim Wojtulewicz, Corelight) * Add pre-commit hooks and run clang-format on everything (Tim Wojtulewicz, Corelight) * Remove already-applied binpac-* patches (Tim Wojtulewicz, Corelight) * Rename files in patches to match current directory structure (Tim Wojtulewicz, Corelight) * Keep make dist from deleting all paths containing 'build' [skip ci] (Tim Wojtulewicz, Corelight) 0.59.0 | 2022-06-01 09:29:52 -0700 * Release 0.59.0 0.58.0-4 | 2022-01-27 14:48:01 -0700 * Have `make dist` cleanup a few more wayward files before tarring (Tim Wojtulewicz, Corelight) * Update cmake submodule to latest master (Tim Wojtulewicz, Corelight) 0.58.0 | 2021-07-06 08:54:19 -0700 * Release 0.58.0. 0.57.0-13 | 2021-07-06 08:53:21 -0700 * CMAKE_CFG_INTDIR is no longer necessary. (Seth Hall, Corelight) CMake documentation says that CMAKE_CFG_INTDIR is no longer necessary to find the right binary for the configuration and is in fact deprecated in recent versions of CMake. * Updates for building Zeek as a submodule (Seth Hall, Corelight) 0.57.0-10 | 2021-03-17 13:45:00 -0700 * Prevent use of LeakSanitizer on FreeBSD (Jon Siwek, Corelight) 0.57.0-8 | 2021-03-05 16:56:07 -0800 * Fix LGTM findings (Tim Wojtulewicz, Corelight) 0.57.0-6 | 2021-02-24 15:51:00 -0800 * Remove usage of ZEEK_FORWARD_DECLARE_NAMESPACED macro (Tim Wojtulewicz, Corelight) 0.57.0-4 | 2021-02-08 15:39:25 -0800 * Remove a useless/empty 'btest' file (Jon Siwek, Corelight) * Fix #include of RE.h to use zeek/RE.h (Jon Siwek, Corelight) 0.57.0 | 2020-12-04 11:14:57 -0800 * Release 0.57.0 0.56.0-10 | 2020-12-04 11:25:26 +0000 * GH-14: Use larger temporary storage for evaluating case-expressions For example: inum: uint32 = case (ed & 0x0f) of { 0x00 -> n_8; # n_8 is a uint8 0x01 -> n_16; # n_16 is a uint16 0x02 -> n_32; # n_32 is a uint32 default -> 0; }; Previously, the temporary storage used for evaluating the case-expression was based on whatever type the first case yields, which is a uint8 in the above example. That behavior can lead to a narrowing conversion whenever the 0x01 or 0x02 cases occur. The new behavior is to base the temporary storage's type on the largest numeric type that the case-expression can yield, which is uint32 in the above example. (Jon Siwek, Corelight) 0.56.0-8 | 2020-12-02 11:05:22 -0800 * Update minimum required CMake to 3.5 (Jon Siwek, Corelight) 0.56.0-2 | 2020-08-01 09:15:51 -0700 * Move RE_Matcher to zeek namespace (Tim Wojtulewicz, Corelight) 0.56.0 | 2020-07-23 10:11:13 -0700 * Release 0.56.0 0.55-17 | 2020-07-02 19:22:00 -0700 * Allow namespaced names as typenames for function return values (Tim Wojtulewicz, Corelight) 0.55-8 | 2020-04-16 13:51:03 -0700 * Remove use of Variable-Length-Arrays. (Jon Siwek, Corelight) 0.55-6 | 2020-03-24 13:39:27 -0700 * Fix incorrect boundary checks in flowbuffer frame length parsing Incremental flowbuffer parsing sought to first parse the "minimum header length" required to get the full frame length, possibly from a record field, but generating the logic to parse that field could greedily bundle in additional boundary-checks for all subsequent fields of known-size. E.g. for flowunit parsing of this: type HDR = record { version: uint8; reserved: uint8; len: uint16; } &byteorder=bigendian; type FOO_PDU(is_orig: bool) = record { hdr: HDR; plen: uint8; ptype: uint8; something: bytestring &restofdata; } &byteorder=bigendian, &length=hdr.len; The flowbuffer was correctly seeking to buffer 4 bytes and parse the "hdr.len" field, but the generated parsing logic for "hdr.len" included a boundary check all the way up to include "plen" and "ptype". This causes out-of-bounds exceptions to be thrown for inputs that should actually be possible to incrementally parse via flowbuffer. (Jon Siwek, Corelight) 0.55 | 2020-02-05 21:28:26 -0800 * Release 0.55 0.54-15 | 2020-01-03 09:57:44 -0700 * Disable LeakSanitizer https://github.com/zeek/zeek/issues/699 (Jon Siwek, Corelight) 0.54-12 | 2019-11-15 17:45:29 -0800 * Fix Zeek build for multi-config CMake generators (e.g. Xcode) (Jon Siwek, Corelight) 0.54-11 | 2019-11-06 22:26:54 -0800 * Fix shared library versioning to agree with OpenBSD expectations (Jon Siwek, Corelight) OpenBSD shared library names are like "libfoo.so.major.minor" and binpac was previously letting the post-release number into the name like "libbinpac.so.0.54-7", which isn't compatible with that scheme. Related to https://github.com/zeek/zeek/issues/649 0.54-7 | 2019-10-28 17:59:21 -0700 * Move CMake project() after cmake_minimum_required() (Jon Siwek, Corelight) 0.54 | 2019-07-03 02:41:46 +0000 * Release 0.54. 0.51-27 | 2019-07-03 02:41:10 +0000 * Fix signed integer overflow in array bounds checks. (Jon Siwek, Corelight) Array lengths use signed integer storage, so multiplication of that by the element size for purpose of bounds checking against available data may produce a signed integer overlow, which is undefined behavior. 0.51-25 | 2019-07-01 10:33:44 -0700 * Fix a printf format specifier (Jon Siwek, Corelight) 0.51-22 | 2019-05-20 19:36:17 -0700 * Rename Bro to Zeek (Daniel Thayer) 0.51-19 | 2019-05-20 13:21:24 -0700 * Fix C++11 compatibility issue for older compilers (Jon Siwek, Corelight) 0.51-18 | 2019-05-20 09:00:39 -0700 * Improve storage type used for case-type index The type used to store the index for a case-type now tracks the type of the index expression rather than always using an "int". The case fields also now have some checking done at code-gen-time to ensure the constants used for cases does not exceed the numeric limit of the type used in the case's index expression. Then, assuming, it looks safe, the C++ case labels are generated with casts to the type of the Binpac case's index expression to ensure compilers accept it (since all Binpac numbers use "int" for storage/printing internally). (Jon Siwek, Corelight) * Add FlowBuffer policy mechanisms This allows for tunability of the following behaviors: * Minimum flowbuffer capacity to use when parsing a new unit * Threshold at which flowbuffer capacity is contracted back to the minimum after parsing a complete unit and before parsing the next * Maximum flowbuffer capacity to allow when parsing a given unit Failed flowbuffer allocations due to reaching maximum capacity or any other reason now throw ExceptionFlowBufferAlloc. (Jon Siwek, Corelight) 0.51-11 | 2019-03-18 13:51:03 -0700 * Build binpac shared lib instead of static by default (Jon Siwek, Corelight) 0.51-9 | 2019-02-15 15:25:03 -0600 * Bump minimum CMake version to 2.8.12 (Jon Siwek, Corelight) * Set install dirs using GNUInstallDirs module in CMake (Derek Ditch) 0.51-4 | 2018-12-10 11:46:09 -0600 * Replace u_char usages with unsigned char (Jon Siwek, Corelight) Improve Alpine (musl) support by not relying on the (technically) non-standard u_char typedef. 0.51-2 | 2018-12-07 16:23:35 -0600 * Update github/download link (Jon Siwek, Corelight) * Update submodules to use github.com/zeek (Jon Siwek, Corelight) 0.51 | 2018-08-31 15:23:53 -0500 * Improve `make dist` (Jon Siwek, Corelight) 0.48-35 | 2018-08-28 10:23:24 -0500 * Fix array bounds checking For arrays that are fields within a record, the bounds check was based on a pointer to the start of the record rather than the start of the array field. (Jon Siwek, Corelight) 0.48-31 | 2018-08-01 11:22:52 -0500 * Update BinPAC_EXE CMake variable to be a full path (Jon Siwek, Corelight) 0.48-27 | 2018-07-24 16:33:58 -0500 * Install headers to alternate path as part of Bro sub-project (Jon Siwek, Corelight) 0.48-25 | 2018-07-24 01:46:05 +0000 * Remove "installation skip" code paths. (Jon Siwek, Corelight) * Don't install binpac.h.in. (Jon Siwek, Corelight) * Fix compiler warning. (Robin Sommer, Corelight) 0.48-20 | 2018-05-22 14:59:09 -0500 * BIT-1829: throw exceptions for negative array length expressions (Corelight) * BIT-1829: throw exceptions for excessive array sizes (Corelight) * Migrate fmt() usage to strfmt() (Corelight) * Improve parsing of known-length, static-size arrays (Corelight) * GH-4: fix premature loop termination when parsing known-length arrays (Tomas Bortoli for initial patch proposal and Corelight for adapting it) * BIT-1829: fix &length suppressing boundary checks for array elements (Corelight) 0.48-13 | 2018-05-15 15:38:23 +0000 * Updating submodule. 0.48-10 | 2018-04-25 11:04:50 -0500 * BIT-1914: emit deprecation warning for &check usages (Corelight) * BIT-1914: move &check implementation to new &enforce attribute &check returns to being a no-op to avoid unintentionally breaking existing code. (Corelight) * BIT-1914: Implement &check (Antoine) 0.48-6 | 2018-04-24 13:01:53 -0500 * Fix an uninitialized member warning (Corelight) 0.48-5 | 2018-04-19 11:46:02 -0500 * Allow arbitrary, single-character &linebreaker expressions (giralt) 0.48 | 2018-02-13 09:27:42 -0800 * Release 0.48 * Fix integer overflow in binpac generated code (Philippe Antoince/Catena cyber). 0.47 | 2017-05-26 08:26:05 -0500 * Release 0.47. 0.46-1 | 2016-11-30 10:18:23 -0800 * Allow more than one &require attribute on a field. (François Pennaneach) 0.46 | 2016-10-27 14:41:38 -0700 * Release 0.46. 0.45 | 2016-08-02 11:09:42 -0700 * Release 0.45. 0.44-24 | 2016-08-02 11:08:13 -0700 * Fix memory leak in pac_parse.yy. (Bryon Gloden) 0.44-21 | 2016-06-14 17:41:28 -0700 * Bug fix for pac_swap function with int32 type of argument. (Bartolo Otrit) 0.44-18 | 2016-05-23 08:25:49 -0700 * Fixing Coverity warning. (Robin Sommer) 0.44-17 | 2016-05-06 16:52:37 -0700 * Add a comment in the generated C++ code for fall through in switch. Coverity raised an error about this. (Vlad Grigorescu) 0.44-11 | 2016-03-04 12:36:57 -0800 * Update for new CMake OpenSSL script. (Johanna Amann) 0.44-7 | 2016-01-19 10:05:37 -0800 * Fixed compiler complaining about recursive function. (Seth Hall) 0.44-3 | 2015-09-11 12:24:21 -0700 * Add README.rst symlink. Addresses BIT-1413 (Vlad Grigorescu) 0.44 | 2015-04-27 08:25:17 -0700 * Release 0.44. 0.43-8 | 2015-04-21 20:11:06 -0700 * Adding missing include. (Robin Sommer) 0.43-7 | 2015-04-21 13:45:20 -0700 * BIT-1343: Extend %include to work with relative paths. (Jon Siwek) 0.43-5 | 2015-04-09 12:09:04 -0700 * BIT-1361: Improve boundary checks of records that use &length. (Jon Siwek) 0.43 | 2015-01-23 09:56:59 -0600 * Fix potential out-of-bounds memory reads in generated code. CVE-2014-9586. (John Villamil and Chris Rohlf - Yahoo Paranoids, Jon Siwek) 0.42-9 | 2014-11-03 10:05:17 -0600 * Separate declaration of binpac::init from definition. (Jon Siwek) 0.42-6 | 2014-10-31 17:42:21 -0700 * Adding a new binpac::init() function that must be called by the host before anything else. Internally, this function compiles all regular expressions, avoiding to do that inside the regexp constructor. (Robin Sommer) 0.42 | 2014-04-08 15:24:11 -0700 * Release 0.42. 0.41-5 | 2014-04-08 15:23:48 -0700 * Request format macros from inttypes.h explicitly. This helps ensure the availability of PRI* macros from .pac files, which cannot create this definition themselves since the inclusion of binpac.h is hardcoded to be placed very early in the generated code and already includes inttypes.h itself. (Jon Siwek) 0.41 | 2013-10-14 09:24:54 -0700 * Updating copyright notice. (Robin Sommer) 0.4-5 | 2013-10-02 10:33:05 -0700 * Fix uninitialized (or unused) fields. (Jon Siwek) * Generate initialization code for external types. Numeric/pointer types can be initialized to 0. (Jon Siwek) * Optimize negative string length check. (Jon Siwek) * Fix for setting REPO in Makefile. (Robin Sommer) 0.4 | 2013-09-23 20:56:19 -0700 * Update 'make dist' target. (Jon Siwek) * Change submodules to fixed URL. (Jon Siwek) * Add virtual dtor to RefCount base class. (Jon Siwek) 0.34-24 | 2013-09-12 15:49:51 -0500 * Add missing break to switch statement case. (Jon Siwek) * Remove unreachable code. (Jon Siwek) * Add missing va_end()'s to match va_start()'s. (Jon Siwek) * Fix two use-after-free bugs. (Jon Siwek) * Fix double-free. (Jon Siwek) * Remove some answers from the Q&A section of README (Daniel Thayer) * Add BinPAC documentation from the old Bro wiki (Daniel Thayer) 0.34-11 | 2013-07-24 18:35:28 -0700 * Adding an interface to manually control the buffering for generated parsers. (Robin Sommer) This consists of two parts: 1. The generated Flow classes expose their flow buffers via a new method flow_buffer(). 2. Flow buffers get two new methods: // Interface for delayed parsing. Sometimes BinPAC doesn't get the // buffering right and then one can use these to feed parts // individually and assemble them internally. After calling // FinishBuffer(), one can send the uppper-layer flow an FlowEOF() // to trigger parsing. void BufferData(const_byteptr data, const_byteptr end); void FinishBuffer(); (Robin Sommer) 0.34-8 | 2013-04-27 15:04:23 -0700 * Fix an exception slicing issue in binpac generated cleanup code. (Jon Siwek) * s/bro-ids.org/bro.org/g (Robin Sommer) 0.34-3 | 2012-11-13 17:24:24 -0800 * Add scoping to usages of binpac::Exception classes in generated code. This allows analyzers to define their own types of the same name without mistakingly overshadowing the usages of binpac::Exception and its derived types in the generated parser code. (Jon Siwek) 0.34 | 2012-08-01 13:54:39 -0500 * Fix configure script to exit with non-zero status on error (Jon Siwek) 0.33 | 2012-07-24 09:05:37 -0700 * Silence warning for generated code when compiling with clang. (Robin Sommer) 0.32 | 2012-06-11 17:25:04 -0700 * Change binpac.h integral typedefs and reimplement 64-bit pac_swap(). Addresses #761. (Jon Siwek) * Adding int64 and uint64 types to binpac. (Seth Hall) * Raise minimum required CMake version to 2.6.3 (Jon Siwek) 0.31 | 2012-01-09 16:11:01 -0800 * Submodule README conformity changes. (Jon Siwek) * Fix parallel make portability. (Jon Siwek) 0.3 | 2011-10-25 17:41:31 -0700 * Change distclean to only remove build dir. (Jon Siwek) * Make dist now cleans the copied source. (Jon Siwek) * Distribution cleanup. (Jon Siwek and Robin Sommer) * Arrays now suport the &transient attribute. If set, parsed elements won't actually be added to the array, and read access to the array aren't permitted. This is helpful to save memory in the case of large arrays for which elements don't need (or can't) be buffered. (Robin Sommer) * Install binaries with an RPATH. (Jon Siwek) * Workaround for FreeBSD CMake port missing debug flags. (Jon Siwek) 0.2 | 2011-04-18 12:50:21 -0700 * Converting build process to CMake (Jon Siwek). * Fixing crash with undefined case expressions. (Robin Sommer) Found by Emmanuele Zambon. * A command line -q flag to quiet the output, plus a fix for a small compiler warning. (Seth Hall) * Initial import of Bro's binpac subdirectory from SVN r7088. (Jon Siwek)