From c2d91096d215023df500325b76af951791cfee46 Mon Sep 17 00:00:00 2001 From: Luis Nassif Date: Sat, 27 Jul 2024 15:16:50 -0300 Subject: [PATCH] '#2264: ignore original messages of reply msgs being duplicated in case --- .../java/iped/engine/datasource/UfedXmlReader.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/iped-engine/src/main/java/iped/engine/datasource/UfedXmlReader.java b/iped-engine/src/main/java/iped/engine/datasource/UfedXmlReader.java index a5b307b0eb..959686a0d2 100644 --- a/iped-engine/src/main/java/iped/engine/datasource/UfedXmlReader.java +++ b/iped-engine/src/main/java/iped/engine/datasource/UfedXmlReader.java @@ -896,6 +896,7 @@ else if (parentItem.getMediaType().equals(MediaTypes.UFED_MESSAGE_MIME)) { item.getMetadata().set(ExtraProperties.MESSAGE_BODY, body); } int numInstantMsgAttachs = 0; + boolean ignoreItemLocal = false; if ("InstantMessage".equals(type)) { numInstantMsgAttachs = this.numAttachments; if (numInstantMsgAttachs > 0) { @@ -904,6 +905,13 @@ else if (parentItem.getMediaType().equals(MediaTypes.UFED_MESSAGE_MIME)) { UFEDChatParser.ATTACHED_MEDIA_MSG + numInstantMsgAttachs); } this.numAttachments = 0; + if (!itemSeq.isEmpty()) { + IItem parentItem = itemSeq.get(itemSeq.size() - 1); + // See https://github.com/sepinf-inc/IPED/issues/2264#issuecomment-2254192462 + if (parentItem.getName().startsWith("ReplyMessageData_")) { + ignoreItemLocal = true; + } + } } if (mergeInParentNode.contains(type) && itemSeq.size() > 0) { IItem parentItem = itemSeq.get(itemSeq.size() - 1); @@ -1067,7 +1075,11 @@ else if ("Bcc".equalsIgnoreCase(role)) //$NON-NLS-1$ String ufedId = item.getMetadata().get(ExtraProperties.UFED_META_PREFIX + "id"); // add items if not ignoring already added instant message xml tree if (ignoreItemTree == null) { - processItem(item); + if (!ignoreItemLocal) { + processItem(item); + } else { + caseData.incDiscoveredEvidences(-1); + } if ("InstantMessage".equals(type)) { // remember IM ids to not add them again later addedImUfedIds.add(ufedId);