heuristic_protos do not reset on profile swap
Summary
If a profile that contains a disabled_protos is loaded and subsequently moved off of to a profile with no proto configs, the protos allowed are not reset.
Sample capture file
You can use the base dump.pcapng + premaster.txt from the tls wiki: https://wiki.wireshark.org/TLS
Steps to reproduce
- Create a disabled_protos in a personal profile containing the following:
communityid
http
http2
http3
prp
stcsig
transum
- Load the example pcap
- Set the premaster.txt
- Confirm http pros are visible
- Load the personal profile created above
- Confirm http lines are now hidden
- Swap back to the original profile
- Observe the protos remain hidden
What is the current bug behavior?
The disabled_protos are carrying between profiles. It makes sense that they are loaded at time of profile switch, but this shouldn't remain while swapping off. Note that this is not the behavior if you load a profile with it's own set of disabled_protos.
What is the expected correct behavior?
If a profile contains no disabled_protos, all filtered protos should be reset to default values on profile load.
Build information
Version 4.2.0 (v4.2.0-0-g54eedfc63953).
Compiled (64-bit) using Microsoft Visual Studio 2022 (VC++ 14.37, build 32822),
with GLib 2.78.0, with Qt 6.5.3, with libpcap, with zlib 1.3.0, with PCRE2, with
Lua 5.2.4 (with UfW patches), with GnuTLS 3.7.9 and PKCS #11 support, with
Gcrypt 1.10.2-unknown, with Kerberos (MIT), with MaxMind, with nghttp2 1.57.0,
with nghttp3 1.0.0, with brotli, with LZ4, with Zstandard, with Snappy, with
libxml2 2.11.5, with libsmi 0.5.0, with QtMultimedia, with automatic updates
using WinSparkle 0.8.0, with AirPcap, with Minizip, with binary plugins.
Running on 64-bit Windows 10 (22H2), build 19045, with Intel(R) Core(TM) i7-8700
CPU @ 3.20GHz (with SSE4.2), with 65474 MB of physical memory, with GLib 2.78.0,
with Qt 6.5.3, with Npcap version 1.78, based on libpcap version 1.10.4, with
PCRE2 10.42 2022-12-11, with c-ares 1.19.0, with GnuTLS 3.7.9, with Gcrypt
1.10.2-unknown, with nghttp2 1.57.0, with nghttp3 1.0.0, with brotli 1.0.9, with
LZ4 1.9.3, with Zstandard 1.5.2, without AirPcap, with dark display mode,
without HiDPI, with QPA plugin "windows", with LC_TYPE=English_United
States.utf8, binary plugins supported.