From: colm Date: Mon, 12 Dec 2016 18:41:19 +0000 (-0500) Subject: FS-9775: correct ks_dhtrt_closest_nodes query results X-Git-Tag: v1.8.0~893^2~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b3bcc76db105cf88f011c33fac3a53430f8bd955;p=thirdparty%2Ffreeswitch.git FS-9775: correct ks_dhtrt_closest_nodes query results --- 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;