From: Nick Mathewson Date: Tue, 18 Mar 2014 14:49:39 +0000 (-0400) Subject: Fix a ubsan warning in addr_mask_get_bits X-Git-Tag: tor-0.2.5.4-alpha~85^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dfdeb6418d3d99e6e9099a3ad8ca83c206b52bdc;p=thirdparty%2Ftor.git Fix a ubsan warning in addr_mask_get_bits 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. --- diff --git a/src/common/address.c b/src/common/address.c index 69049fa0af..bb1a24419e 100644 --- a/src/common/address.c +++ b/src/common/address.c @@ -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; }