diff options
author | Nick Mathewson <nickm@torproject.org> | 2006-02-13 00:26:43 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2006-02-13 00:26:43 +0000 |
commit | 2cc66125b8c90558d30f93456fb8d7c3bd1362ec (patch) | |
tree | a83c013110feb335435f8c2a963d440ed66258ef | |
parent | e20df524b9fdc2393e947eec723f3fc9b8474c2a (diff) | |
download | tor-2cc66125b8c90558d30f93456fb8d7c3bd1362ec.tar tor-2cc66125b8c90558d30f93456fb8d7c3bd1362ec.tar.gz |
try to fix bug with spurious "everything is broken" warning
svn:r5994
-rw-r--r-- | src/common/util.c | 8 | ||||
-rw-r--r-- | src/or/test.c | 5 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/common/util.c b/src/common/util.c index 707f5315a..f0c9346dd 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -1426,8 +1426,12 @@ int addr_mask_get_bits(uint32_t mask) { int i; + if (mask == 0) + return 0; + if (mask == 0xFFFFFFFFu) + return 32; for (i=0; i<=32; ++i) { - if (mask == ~((1<<(32-i))-1)) { + if (mask == (uint32_t) ~((1u<<(32-i))-1)) { return i; } } @@ -1493,7 +1497,7 @@ parse_addr_and_port_range(const char *s, uint32_t *addr_out, "Bad number of mask bits on address range; rejecting."); goto err; } - *mask_out = ~((1<<(32-bits))-1); + *mask_out = ~((1u<<(32-bits))-1); } else if (tor_inet_aton(mask, &in) != 0) { *mask_out = ntohl(in.s_addr); } else { diff --git a/src/or/test.c b/src/or/test.c index 8f81eb2c0..c55ec5f4d 100644 --- a/src/or/test.c +++ b/src/or/test.c @@ -835,6 +835,11 @@ test_util(void) test_eq(u32, 0x7f000001u); test_eq(u16, 0); tor_free(cp); + test_eq(0, addr_mask_get_bits(0x0u)); + test_eq(32, addr_mask_get_bits(0xFFFFFFFFu)); + test_eq(16, addr_mask_get_bits(0xFFFF0000u)); + test_eq(31, addr_mask_get_bits(0xFFFFFFFEu)); + test_eq(1, addr_mask_get_bits(0x80000000u)); /* Test tor_parse_long. */ test_eq(10L, tor_parse_long("10",10,0,100,NULL,NULL)); |