Forráskód Böngészése

Fix a possible negative shift in address comparison. May fix bug 845 and bug 811

svn:r17169
Nick Mathewson 17 éve
szülő
commit
361086005c
2 módosított fájl, 4 hozzáadás és 0 törlés
  1. 2 0
      ChangeLog
  2. 2 0
      src/common/address.c

+ 2 - 0
ChangeLog

@@ -41,6 +41,8 @@ Changes in version 0.2.1.7-alpha - 2008-10-xx
       prevent possible guess-the-streamid injection attacks from
       intermediate hops.  Fixes another case of bug 446. Based on patch
       from rovv.
+    - Avoid using a negative right-shift when comparing 32-bit
+      addresses.  Possible fix for bug 845 and bug 811.
 
 
 Changes in version 0.2.1.6-alpha - 2008-09-30

+ 2 - 0
src/common/address.c

@@ -686,6 +686,8 @@ tor_addr_compare_masked(const tor_addr_t *addr1, const tor_addr_t *addr2,
       case AF_INET: {
         uint32_t a1 = ntohl(addr1->addr.in_addr.s_addr);
         uint32_t a2 = ntohl(addr2->addr.in_addr.s_addr);
+        if (mbits > 32)
+          mbits = 32;
         a1 >>= (32-mbits);
         a2 >>= (32-mbits);
         return (a1 < a2) ? -1 : (a1 == a2) ? 0 : 1;