1 | Revision history for Perl extension CBOR::XS |
1 | Revision history for Perl extension CBOR::XS |
2 | |
2 | |
3 | TODO: pack_keys? |
3 | TODO: pack_keys? |
4 | TODO: document encode_cbor_sharing? |
4 | TODO: document encode_cbor_sharing? |
5 | TODO: weaken cyclic structures? |
5 | TODO: weaken cyclic structures? |
|
|
6 | TODO: large negative integers |
6 | |
7 | |
|
|
8 | 1.6 Wed Dec 7 15:13:23 CET 2016 |
|
|
9 | - greatly expand the SECURITY IMPLICATIONS and similar sections. |
|
|
10 | - new constructor new_safe, to create a secure CBOR::XS object. |
|
|
11 | - new option forbid_objects, to disallow serialisation. |
|
|
12 | - new CBOR::XS::safe_filter functionality. |
|
|
13 | - fix a crash when decoding a cyclic data structure using |
|
|
14 | stringref/pack_strings when allow_cycles is disabled. |
|
|
15 | - fix a crash when decoding hash keys with length >= 2**31. |
|
|
16 | - avoid unreasonably long decoding times for certain |
|
|
17 | types of (corrupt) cbor texts. |
|
|
18 | - support arrays and hashes with >= 2**31 members. |
|
|
19 | - avoid overflow on pointer arithmetic when checking whether enough |
|
|
20 | data is available. |
|
|
21 | - fix a memory leak that occured when decoding failed while decoding |
|
|
22 | a tagged value. |
|
|
23 | - do not leak the partially constructed result when stringifying |
|
|
24 | a hash key throws an exception. |
|
|
25 | - various code size and efficiency optimizations (reduced code |
|
|
26 | from 42 to 40kB on my system, despite the new features). |
|
|
27 | |
|
|
28 | 1.5 Wed Apr 27 11:38:39 CEST 2016 |
|
|
29 | - Math::BigFloat madness workaround, see |
|
|
30 | http://blog.schmorp.de/2016-04-23-mathbigfloat-maintainer-fail.html |
|
|
31 | (bugreport by zdm@softvisio.net). |
|
|
32 | - add text_keys and text_strings options to force CBOR text encoding |
|
|
33 | for perl hash keys or all strings, as a result of discussions |
|
|
34 | with Fredrik Ljunggren. |
|
|
35 | - implement support for arbitrary-exponent numbers (see |
|
|
36 | http://peteroupc.github.io/CBOR/bigfrac.html, tags 264 and 265) |
|
|
37 | for both en- and decoding. |
|
|
38 | - implement support for rational numbers (see |
|
|
39 | http://peteroupc.github.io/CBOR/rational.html, tag 30) for both |
|
|
40 | en- and decoding. |
|
|
41 | - the above effectively implements all registered CBOR extensions |
|
|
42 | in a sensible manner. |
|
|
43 | - remove some weird dead code that was duplicated (%FILTER). |
|
|
44 | - add t/58_hv.t, which tests hashes and the new text_* flags. |
|
|
45 | hashes apparently were not encoded at all in any of the existing |
|
|
46 | tests. |
|
|
47 | - document Math::BigFloat base-2 performance/crash issues. |
|
|
48 | - use stability canary. |
|
|
49 | |
|
|
50 | 1.41 Thu 25 Feb 15:22:03 CET 2016 |
|
|
51 | - avoid perl panics on nested FREEZE/THAW calls (testcase by |
|
|
52 | Victor Efimov). |
|
|
53 | |
|
|
54 | 1.4 Mon Feb 8 05:10:15 CET 2016 |
|
|
55 | - buffer overflow fix: a fast path during decoding did not check |
|
|
56 | remaining length when decoding hash keys, found by fuzzing. |
|
|
57 | This can potentially leak information in the error message |
|
|
58 | or crash the process. |
|
|
59 | - use C style { 0 } struct initializer. |
|
|
60 | - upgrade libecb. |
|
|
61 | |
|
|
62 | 1.3 Mon Apr 27 22:21:04 CEST 2015 |
|
|
63 | - the incremental parser didn't properly parse tagged values |
|
|
64 | (testcase by Mons Anderson). |
|
|
65 | - slightly speed up encoding of plain (nonmagical) arrays. |
|
|
66 | - try to clarify further that effectively all 32 bit architectures |
|
|
67 | have 64 bit integer support. |
|
|
68 | - upgrade libecb. |
|
|
69 | |
|
|
70 | 1.26 Sat Oct 25 08:35:44 CEST 2014 |
7 | - update the t/57_incr.t subtest that would rely on 64 bit ints. |
71 | - update the t/57_incr.t subtest that would rely on 64 bit ints. |
|
|
72 | - disable t/50_rfc.t test that fails because of broken data::dumper. |
8 | |
73 | |
9 | 1.25 Sun Jan 5 15:19:14 CET 2014 |
74 | 1.25 Sun Jan 5 15:19:14 CET 2014 |
10 | - map key decoding was pretty much botched due to the recent cleanups. |
75 | - map key decoding was pretty much botched due to the recent cleanups. |
11 | - work around Time::Piece->epoch returning a string value, avoid encoding |
76 | - work around Time::Piece->epoch returning a string value, avoid encoding |
12 | this as a tag 1 string. |
77 | this as a tag 1 string. |