Blame SOURCES/wireshark-0013-CVE-18225.patch

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