32 lines
1.6 KiB
Diff
32 lines
1.6 KiB
Diff
diff --git a/epan/dissectors/packet-coap.c b/epan/dissectors/packet-coap.c
|
|
index b37b6c231c..b7afe05f82 100644
|
|
--- a/epan/dissectors/packet-coap.c
|
|
+++ b/epan/dissectors/packet-coap.c
|
|
@@ -450,8 +450,11 @@ dissect_coap_opt_object_security(tvbuff_t *tvb, proto_item *head_item, proto_tre
|
|
coinfo->object_security = TRUE;
|
|
|
|
coinfo->oscore_info->piv = NULL;
|
|
+ coinfo->oscore_info->piv_len = 0;
|
|
coinfo->oscore_info->kid_context = NULL;
|
|
+ coinfo->oscore_info->kid_context_len = 0;
|
|
coinfo->oscore_info->kid = NULL;
|
|
+ coinfo->oscore_info->kid_len = 0;
|
|
|
|
if (opt_length == 0) { /* option length is zero, means flag byte is 0x00*/
|
|
/* add info to the head of the packet detail */
|
|
@@ -1144,11 +1147,9 @@ dissect_coap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
|
|
/* Indicate to OSCORE that this response contains its own PIV */
|
|
coinfo->oscore_info->piv_in_response = TRUE;
|
|
coap_trans->oscore_info->piv_in_response = TRUE;
|
|
- } else {
|
|
- if (coap_trans->oscore_info->piv) {
|
|
- /* Use the PIV from the request */
|
|
- coinfo->oscore_info->piv = (guint8 *) wmem_memdup(wmem_packet_scope(), coap_trans->oscore_info->piv, coap_trans->oscore_info->piv_len);
|
|
- }
|
|
+ } else if (coap_trans->oscore_info->piv_len > 0) {
|
|
+ /* Use the PIV from the request */
|
|
+ coinfo->oscore_info->piv = (guint8 *) wmem_memdup(wmem_packet_scope(), coap_trans->oscore_info->piv, coap_trans->oscore_info->piv_len);
|
|
coinfo->oscore_info->piv_len = coap_trans->oscore_info->piv_len;
|
|
}
|
|
coinfo->oscore_info->response = TRUE;
|