diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2015-11-28 14:47:28 +0100 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2015-11-28 16:13:29 +0000 |
commit | 56baca60271379cb97f6a4a6bf72eb526e8b52d0 (patch) | |
tree | 07ecba4f492fd3422cab9884724a9b7e74560db4 /epan | |
parent | aaa28a9d39158ca1033bbd3372cf423abbf4f202 (diff) |
RSVP: copy all rsvp_request_key info in file scope
This is needed as it is later used for comparisons in the request hash table
Bug: 11793
Change-Id: I5fce82f77c27cf728c61676ef937fbbcd0833fd9
Reviewed-on: https://code.wireshark.org/review/12253
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-rsvp.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/epan/dissectors/packet-rsvp.c b/epan/dissectors/packet-rsvp.c index 40459444d5..fc290b1fb8 100644 --- a/epan/dissectors/packet-rsvp.c +++ b/epan/dissectors/packet-rsvp.c @@ -7523,7 +7523,7 @@ dissect_rsvp_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolea break; } - copy_address_wmem(wmem_file_scope(), &request_key.source_info.source, &rsvph->source); + copy_address_shallow(&request_key.source_info.source, &rsvph->source); request_key.source_info.udp_source_port = rsvph->udp_source_port; /* See if a request with this key already exists */ @@ -7535,6 +7535,31 @@ dissect_rsvp_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolea if (!request_val) { new_request_key = (struct rsvp_request_key *)wmem_memdup( wmem_file_scope(), &request_key, sizeof(struct rsvp_request_key)); + switch (request_key.session_type) { + case RSVP_SESSION_TYPE_IPV4: + copy_address_wmem(wmem_file_scope(), &new_request_key->u.session_ipv4.destination, + &request_key.u.session_ipv4.destination); + break; + case RSVP_SESSION_TYPE_IPV4_LSP: + copy_address_wmem(wmem_file_scope(), &new_request_key->u.session_ipv4_lsp.destination, + &request_key.u.session_ipv4_lsp.destination); + break; + case RSVP_SESSION_TYPE_AGGREGATE_IPV4: + copy_address_wmem(wmem_file_scope(), &new_request_key->u.session_agg_ipv4.destination, + &request_key.u.session_agg_ipv4.destination); + break; + case RSVP_SESSION_TYPE_IPV4_UNI: + copy_address_wmem(wmem_file_scope(), &new_request_key->u.session_ipv4_uni.destination, + &request_key.u.session_ipv4_uni.destination); + break; + case RSVP_SESSION_TYPE_IPV4_E_NNI: + copy_address_wmem(wmem_file_scope(), &new_request_key->u.session_ipv4_enni.destination, + &request_key.u.session_ipv4_enni.destination); + break; + default: + break; + } + copy_address_wmem(wmem_file_scope(), &new_request_key->source_info.source, &rsvph->source); request_val = wmem_new(wmem_file_scope(), struct rsvp_request_val); request_val->value = conversation->index; |