commit 5b6f2b50a48f49eea0f7b349b02d2c3391ad4121 Author: Karsten Loesing karsten.loesing@gmx.net Date: Wed Sep 28 16:28:55 2016 +0200
Check "extra-info" lines more carefully. --- .../torproject/collector/bridgedescs/SanitizedBridgesWriter.java | 5 +++++ .../collector/bridgedescs/SanitizedBridgesWriterTest.java | 8 ++++++++ 2 files changed, 13 insertions(+)
diff --git a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java index ac3e39f..abec743 100644 --- a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java +++ b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java @@ -1071,6 +1071,11 @@ public class SanitizedBridgesWriter extends CollecTorMain { * its hash in the sanitized descriptor. */ String[] parts = line.split(" "); if (line.startsWith("extra-info ")) { + if (parts.length < 3) { + logger.debug("Illegal line in extra-info descriptor: '" + line + + "'. Skipping descriptor."); + return; + } hashedBridgeIdentity = DigestUtils.shaHex(Hex.decodeHex( parts[2].toCharArray())).toLowerCase(); scrubbed = new StringBuilder("extra-info " + parts[1] + " " diff --git a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java index 8634eae..9f3857f 100644 --- a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java +++ b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java @@ -414,6 +414,14 @@ public class SanitizedBridgesWriterTest { }
@Test + public void testExtraInfoDescriptorExtraInfoLineTruncated() + throws Exception { + this.defaultExtraInfoDescriptorBuilder.replaceLineStartingWith( + "extra-info ", Arrays.asList("extra-info ")); + this.runTest(); + } + + @Test public void testExtraInfoDescriptorExtraInfoInvalidHex() throws Exception { this.defaultExtraInfoDescriptorBuilder.replaceLineStartingWith(
tor-commits@lists.torproject.org