Fix issue in nat Bisearch algorithm (VPP-980) 88/8388/3
authorflyingeagle23 <wang.hui56@zte.com.cn>
Tue, 12 Sep 2017 07:10:46 +0000 (15:10 +0800)
committerDamjan Marion <dmarion.lists@gmail.com>
Tue, 12 Sep 2017 11:36:05 +0000 (11:36 +0000)
Change-Id: I39b1d1ec6fb9a10e2a0e67d36b01c0bf2522d07f
Signed-off-by: flyingeagle23 <wang.hui56@zte.com.cn>
src/plugins/nat/nat.c

index b13c857..faf75fc 100644 (file)
@@ -1323,7 +1323,7 @@ int snat_static_mapping_match (snat_main_t * sm,
           rand = 1 + (random_u32 (&sm->random_seed) % m->locals[hi].prefix);
           while (lo < hi)
             {
-              mid = ((hi - 1) >> 1) + lo;
+              mid = ((hi - lo) >> 1) + lo;
               (rand > m->locals[mid].prefix) ? (lo = mid + 1) : (hi = mid);
             }
           if (!(m->locals[lo].prefix >= rand))