aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--epan/packet.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/epan/packet.c b/epan/packet.c
index 00c6609f0f..37579fd294 100644
--- a/epan/packet.c
+++ b/epan/packet.c
@@ -767,7 +767,7 @@ call_dissector_work(dissector_handle_t handle, tvbuff_t *tvb, packet_info *pinfo
*/
len = call_dissector_through_handle(handle, tvb, pinfo, tree, data);
}
- if (add_proto_name &&
+ if (handle->protocol != NULL && !proto_is_pino(handle->protocol) && add_proto_name &&
(len == 0 || (tree && saved_tree_count == tree->tree_data->count))) {
/*
* We've added a layer and either the dissector didn't
@@ -2674,11 +2674,6 @@ dissector_try_heuristic(heur_dissector_list_t sub_dissectors, tvbuff_t *tvb,
pinfo->heur_list_name = hdtbl_entry->list_name;
len = (hdtbl_entry->dissector)(tvb, pinfo, tree, data);
- if (len) {
- *heur_dtbl_entry = hdtbl_entry;
- status = TRUE;
- break;
- }
if (hdtbl_entry->protocol != NULL &&
(len == 0 || (tree && saved_tree_count == tree->tree_data->count))) {
/*
@@ -2691,6 +2686,11 @@ dissector_try_heuristic(heur_dissector_list_t sub_dissectors, tvbuff_t *tvb,
wmem_list_remove_frame(pinfo->layers, wmem_list_tail(pinfo->layers));
}
}
+ if (len) {
+ *heur_dtbl_entry = hdtbl_entry;
+ status = TRUE;
+ break;
+ }
}
pinfo->current_proto = saved_curr_proto;