[tor-commits] [metrics-db/master] Add length check before parsing identity-ed25519.

karsten at torproject.org karsten at torproject.org
Thu Jan 7 11:10:05 UTC 2016


commit f5099ba84b5116eca6fb5d1805d9de05d5e65a0b
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Thu Jan 7 11:53:05 2016 +0100

    Add length check before parsing identity-ed25519.
    
    Found while implementing similar functionality in metrics-lib.
---
 .../torproject/ernie/db/bridgedescs/SanitizedBridgesWriter.java   |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/org/torproject/ernie/db/bridgedescs/SanitizedBridgesWriter.java b/src/org/torproject/ernie/db/bridgedescs/SanitizedBridgesWriter.java
index af145c7..a0f9dda 100644
--- a/src/org/torproject/ernie/db/bridgedescs/SanitizedBridgesWriter.java
+++ b/src/org/torproject/ernie/db/bridgedescs/SanitizedBridgesWriter.java
@@ -950,7 +950,10 @@ public class SanitizedBridgesWriter extends Thread {
   private String parseMasterKeyEd25519FromIdentityEd25519(
       String identityEd25519Base64) {
     byte[] identityEd25519 = Base64.decodeBase64(identityEd25519Base64);
-    if (identityEd25519[0] != 0x01) {
+    if (identityEd25519.length < 40) {
+      this.logger.warning("Invalid length of identity-ed25519 (in "
+          + "bytes): " + identityEd25519.length);
+    } else if (identityEd25519[0] != 0x01) {
       this.logger.warning("Unknown version in identity-ed25519: "
           + identityEd25519[0]);
     } else if (identityEd25519[1] != 0x04) {



More information about the tor-commits mailing list