0.61.0-46 | 2025-04-23 08:26:01 -0700

  * CI: No more Ubuntu 20.04 [skip ci] (Arne Welzel, Corelight)

0.61.0-44 | 2025-02-24 10:46:51 -0700

  * CI Updates: FreeBSD 14.2, macOS Sonoma, remove Leap 15.5 (Tim Wojtulewicz, Corelight)

0.61.0-42 | 2025-02-07 17:46:08 -0800

  * CI: bump FreeBSD 14 to 14.2, which came out in Dec'24 (Christian Kreibich, Corelight)

  * CI: remove OpenSuSE Leap 15.5, EOL. (Christian Kreibich, Corelight)

  * Updating submodule(s) [nomail] (Tim Wojtulewicz, Corelight)

0.61.0-37 | 2024-12-06 00:04:26 -0800

  * CI: add Ubuntu 24.10 and actually test 24.04 :-) (Christian Kreibich, Corelight)

  * CI: bump FreeBSD to 13.4 and 14.1, respectively (Christian Kreibich, Corelight)

  * CI: drop Fedora 39, add 41 (Christian Kreibich, Corelight)

0.61.0-33 | 2024-07-24 13:30:00 -0700

  * Format output closer to what clang-format would output (Tim Wojtulewicz, Corelight)

0.61.0-28 | 2024-05-28 15:24:22 -0700

  * CI: update FreeBSD 13 to 13.3 (Christian Kreibich, Corelight)

  * CI: add Opensuse Leap 15.6 (Christian Kreibich, Corelight)

  * CI: remove Centos Stream 8 (Christian Kreibich, Corelight)

  * CI: add Fedora 40, drop 38 (Christian Kreibich, Corelight)

0.61.0-23 | 2024-05-13 17:38:06 -0700

  * CI: Use macOS Sonoma xcode VM to fix problem with missing tools (Tim Wojtulewicz, Corelight)

  * CI: Add Ubuntu 24.04 build (Tim Wojtulewicz, Corelight)

  * CI: Remove CentOS 7 and Debian 10 builds (Christian Kreibich, Corelight)

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)
