From b3bcc76db105cf88f011c33fac3a53430f8bd955 Mon Sep 17 00:00:00 2001 From: colm Date: Mon, 12 Dec 2016 13:41:19 -0500 Subject: [PATCH] FS-9775: correct ks_dhtrt_closest_nodes query results --- libs/libks/src/dht/ks_dht_bucket.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/libks/src/dht/ks_dht_bucket.c b/libs/libks/src/dht/ks_dht_bucket.c index 85fb0e84d6..8278439226 100644 --- a/libs/libks/src/dht/ks_dht_bucket.c +++ b/libs/libks/src/dht/ks_dht_bucket.c @@ -1030,9 +1030,12 @@ uint8_t ks_dhtrt_load_query(ks_dhtrt_querynodes_t *query, ks_dhtrt_sortedxors_t ks_dhtrt_printableid(current->bheader->mask,buf), current->count); #endif int xorix = current->startix; - for (uint8_t ix = 0; ix< current->count && loaded < query->max; ++ix ) { + for (uint8_t ix = 0; + ix< current->count && loaded < query->max && xorix != KS_DHT_BUCKETSIZE; + ++ix ) { unsigned int z = current->xort[xorix].ix; query->nodes[ix] = current->bheader->bucket->entries[z].gptr; + xorix = current->xort[xorix].nextix; ++loaded; } if (loaded >= query->max) break;