From f4d521cb7ce58473b193eb17bb8be40db35febf5 Mon Sep 17 00:00:00 2001 From: apriestman Date: Thu, 27 May 2021 10:58:31 -0400 Subject: [PATCH] Display path string and path bytes when an error occurs --- .../SevenZipExtractor.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/SevenZipExtractor.java b/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/SevenZipExtractor.java index 6fdb53a5c3..da046d729b 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/SevenZipExtractor.java +++ b/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/SevenZipExtractor.java @@ -1309,13 +1309,29 @@ class SevenZipExtractor { } if (tokens.size() != byteTokens.size()) { - logger.log(Level.WARNING, "Could not map path bytes to path string"); + logger.log(Level.WARNING, "Could not map path bytes to path string (path string: \"{0}\", bytes: {1})", + new Object[]{filePath, bytesToString(filePathBytes)}); return addNode(rootNode, tokens, null); } } return addNode(rootNode, tokens, byteTokens); } + + /** + * Convert byte array to string representation. + * + * @param bytes Byte array + * + * @return Byte array as lower case hex string. + */ + private String bytesToString(byte[] bytes) { + StringBuilder result = new StringBuilder(); + for (byte b : bytes) { + result.append(String.format("%02x", b)); + } + return result.toString(); + } /** * recursive method that traverses the path