This prevents the weird failures I saw on macOS in #17856; instead, it
should fail on *all* platforms with
Unhandled exception ("epan/proto.c:8800: failed assertion "DISSECTOR_ASSERT_NOT_REACHED"", group=1, code=6)
(which it does on macOS 11.6/Xcode 12.5.1 and Windows 10/VS 2019
16.11.8; according to
https://en.wikipedia.org/w/index.php?title=Thread-local_storage&oldid=1064900318#C_and_C++
the major UN*X C compilers support __thread and the major Windows C
compilers support __declspec(thread).).
@jvalverde: on branches that require C11/C++11 support, we could perhaps
just use _Thread_local for C and thread_local for C++. Note that
<thread.h> is optional in C11, and macOS 11.6/Xcode 12.5.1 does not
appear to include it.)
This does not *fix* the aforementioned issue; to do *that* we need to do
TRY in the register-dissectors thread code. I'm committing this
separately because it fixes a bug in our exception package that could
cause all sorts of randomness now and in the future - what we're doing
now is Just Wrong.
(Yes, there's code to support per-thread exception handler stacks *on
platforms with pthreads*, but this is simpler *and* also works on
Windows.)
This patch adds support for 802.1AS-2020 Sync with 1-step as they carry
the originTimestamp and the Follow_UP TLV.
This patch also corrects that 802.1AS Sync with 2-step DO NOT have the
originTimestamp but "reserved" data.
Based on MR 2638.
Some http2 headers are unable to be parse in current
HEADERS frame because previous HEADERS frames were not
captured that causing HPACK index table not completed.
This commit make fake headers can also be used in this
situation.
close#17799
According modern EN 300 468 releases reserved PID list includes not
only range 0x00...0x0F from ISO 13818-1 but 0x10...0x1F also.
I added descriptions of the second ones from DVB BlueBook A038r14.
Formally, due to old ISO 13818-1, values 0x10...0x1F (among others)
may be used freely for other purposes but I didn't see such appliance.
Recent commits 2874b979adc1870203047356889242, a2f6b079f1 have lines that
need to be protected by ifdef guards when SSH_DECRYPTION_SUPPORTED
isn't defined. (gcrypt < 1.7.0)
Fixes build.
Get rid of the global content_tvb and object_identifier_id in
the CMS dissector, and put them in a packet scoped proto data
struct, so that when there's a non fatal exception retrieving
the OID we don't use the global value from a previous packet
(or worse, file), since what the content_tvb and object_identifier_id
pointed to were both packet scoped that could lead to memory
access violations.
Clear the values of the OID and the content_tvb each time before
they are retrieved, so that values from a previous PDU of CMS
in the same packet aren't used either. This was not quite as bad
as using a value already freed, but still bad.
Fix#17800, #17809, #17835
Other speed config descriptors are identical to config descriptors, it's
just the request that is different. Handle this request so that other
speed config responses are decoded.
This patch adds support for zero-terminated strings as well as UTF-8 and
UTF-16 strings.
This patch also fixes a check for the signal list UAT (scaler, offset).
Adding subdissector support to UDS and allow Signal PDUs for it.
This patch supports:
- ReadDataByIdentifier (RDBI) Reply
- WriteDataByIdentifier (WDBI) Request
- RoutineControl (RC) Request
- RoutineControl (RC) Reply
Add Multilingual Network Name Descriptor (0x5B),
Multilingual Bouquet Name Descriptor (0x5C),
Multilingual Service Name Descriptor (0x5D),
Multilingual Component Descriptor (0x5E).
Add as a usual DVB descriptors. A specification was taken from
NorDig Unified Requirements 3.1.2.
Formally, private descriptors have to be used after Private Data
Specifier (0x5F) but DVB operators often ignore this rule. So I
didn't limit the descriptors parsing by Nordig private data
specifier (0x00000029).