forked from zeek/binpac
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGES
603 lines (345 loc) · 17.9 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
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)