]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Fix a ubsan warning in addr_mask_get_bits
authorNick Mathewson <nickm@torproject.org>
Tue, 18 Mar 2014 14:49:39 +0000 (10:49 -0400)
committerNick Mathewson <nickm@torproject.org>
Tue, 18 Mar 2014 14:49:39 +0000 (10:49 -0400)
ubsan doesn't like us to do (1u<<32) when 32 is wider than
unsigned.  Fortunately, we already special-case
addr_mask_get_bits(0), so we can just change the loop bounds.

src/common/address.c

index 69049fa0af0c7e17def3a5ffe9ce631633b096fc..bb1a24419efdca9c2f79b9466549ab895e9e0f7a 100644 (file)
@@ -1585,7 +1585,7 @@ addr_mask_get_bits(uint32_t mask)
     return 0;
   if (mask == 0xFFFFFFFFu)
     return 32;
-  for (i=0; i<=32; ++i) {
+  for (i=1; i<=32; ++i) {
     if (mask == (uint32_t) ~((1u<<(32-i))-1)) {
       return i;
     }