From a1c2fd1f61bd5733f3ddb126713ec5da13f1e440 Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Mon, 27 Feb 2017 10:06:10 +0100 Subject: [PATCH 1/1] checking if a unsigned int is >0 is a bad idea 1-2 = 4294967295 is positive !! check 1 > 2 instead revalidate tesh, previous one might have been silently false should please sanitizer --- examples/msg/dht-kademlia/dht-kademlia.c | 4 ++-- examples/msg/dht-kademlia/dht-kademlia.tesh | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/msg/dht-kademlia/dht-kademlia.c b/examples/msg/dht-kademlia/dht-kademlia.c index ad73ec1477..c718db420f 100644 --- a/examples/msg/dht-kademlia/dht-kademlia.c +++ b/examples/msg/dht-kademlia/dht-kademlia.c @@ -159,8 +159,8 @@ unsigned int join(node_t node, unsigned int id_known) } while (answer_got == 0 && trial < max_join_trials); /* Second step: Send a FIND_NODE to a a random node in buckets */ unsigned int bucket_id = routing_table_find_bucket(node->table, id_known)->id; - for (i = 0; ((bucket_id - i) > 0 || (bucket_id + i) <= identifier_size) && i < JOIN_BUCKETS_QUERIES; i++) { - if (bucket_id - i > 0) { + for (i = 0; ((bucket_id > i) || (bucket_id + i) <= identifier_size) && i < JOIN_BUCKETS_QUERIES; i++) { + if (bucket_id > i) { unsigned int id_in_bucket = get_id_in_prefix(node->id, bucket_id - i); find_node(node, id_in_bucket, 0); } diff --git a/examples/msg/dht-kademlia/dht-kademlia.tesh b/examples/msg/dht-kademlia/dht-kademlia.tesh index c2666bb3a5..17c786bec1 100644 --- a/examples/msg/dht-kademlia/dht-kademlia.tesh +++ b/examples/msg/dht-kademlia/dht-kademlia.tesh @@ -19,14 +19,14 @@ $ $SG_TEST_EXENV ${bindir:=.}/dht-kademlia ${srcdir:=.}/cluster.xml ${srcdir:=.} > [ 0.000000] (13:node@node-12.acme.org) Hi, I'm going to join the network with id 4095 > [780.000000] ( 7:node@node-6.acme.org) 5/5 FIND_NODE have succeeded > [780.000000] ( 9:node@node-8.acme.org) 5/5 FIND_NODE have succeeded -> [780.000000] ( 3:node@node-2.acme.org) 5/5 FIND_NODE have succeeded +> [780.000000] ( 3:node@node-2.acme.org) 6/6 FIND_NODE have succeeded > [780.000000] ( 2:node@node-1.acme.org) 6/6 FIND_NODE have succeeded -> [780.000000] (11:node@node-10.acme.org) 6/6 FIND_NODE have succeeded +> [780.000000] (11:node@node-10.acme.org) 5/5 FIND_NODE have succeeded > [780.000000] ( 1:node@node-0.acme.org) 7/7 FIND_NODE have succeeded > [780.000000] ( 5:node@node-4.acme.org) 6/6 FIND_NODE have succeeded > [780.000000] (13:node@node-12.acme.org) 6/6 FIND_NODE have succeeded -> [780.000000] ( 8:node@node-7.acme.org) 6/6 FIND_NODE have succeeded -> [780.000000] ( 6:node@node-5.acme.org) 6/6 FIND_NODE have succeeded +> [780.000000] ( 8:node@node-7.acme.org) 5/5 FIND_NODE have succeeded +> [780.000000] ( 6:node@node-5.acme.org) 5/5 FIND_NODE have succeeded > [780.000000] (10:node@node-9.acme.org) 5/5 FIND_NODE have succeeded > [780.000000] (12:node@node-11.acme.org) 6/6 FIND_NODE have succeeded > [780.000000] ( 4:node@node-3.acme.org) 5/5 FIND_NODE have succeeded -- 2.20.1