Qt: Don't crash when disabling all protocols.
authorGerald Combs <gerald@wireshark.org>
Wed, 18 Dec 2019 17:14:52 +0000 (09:14 -0800)
committerGerald Combs <gerald@wireshark.org>
Wed, 18 Dec 2019 17:34:24 +0000 (17:34 +0000)
Ensure that a protocol can be disabled before attempting to do so. Fixes
crash described at
https://ask.wireshark.org/question/13573/wireshark-crashes-in-the-enabled-protocols-dialog-box/

Change-Id: Ib774bb6d636e82b79c5a922272a39126da85b71d
Reviewed-on: https://code.wireshark.org/review/35489
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Reviewed-by: Pascal Quantin <pascal@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Gerald Combs <gerald@wireshark.org>
ui/qt/models/enabled_protocols_model.cpp

index 668a4eccbf03b3595b5fdb93b98301750cf129e2..d63c56ca57fd6349b4411b2893351a57045e4ae9 100644 (file)
@@ -31,6 +31,9 @@ public:
 protected:
     virtual void applyValuePrivate(gboolean value)
     {
+        if (! proto_can_toggle_protocol(proto_get_id(proto_)) || proto_is_pino(proto_)) {
+            return;
+        }
         proto_set_decoding(proto_get_id(proto_), value);
     }