From 4081fa349eeb1d3836186bfb0a56c41e7081c330 Mon Sep 17 00:00:00 2001 From: Liviu Chircu Date: Wed, 1 Jun 2016 14:33:00 +0300 Subject: [PATCH] load_balancer: Fix a possible crash Could have led to a segfault when OpenSIPS would run oom Reported by Qasim Khan --- modules/load_balancer/lb_data.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/load_balancer/lb_data.c b/modules/load_balancer/lb_data.c index 3a6de95f906..6d177427e71 100644 --- a/modules/load_balancer/lb_data.c +++ b/modules/load_balancer/lb_data.c @@ -735,7 +735,7 @@ int lb_route(struct sip_msg *req, int group, struct lb_res_str_list *rl, * if we have a room for it */ if( dsts_size_cur < dsts_size_max ) { load = it_l; - dsts[dsts_size_cur++] = it_d; + dsts_cur[dsts_size_cur++] = it_d; LM_DBG("%s call of LB - destination %d <%.*s> " "selected for LB set with free=%d\n", @@ -767,9 +767,9 @@ int lb_route(struct sip_msg *req, int group, struct lb_res_str_list *rl, /* choose one destination among selected */ if( dsts_size_cur > 0 ) { if( (dsts_size_cur > 1) && (flags & LB_FLAGS_RANDOM) ) { - dst = dsts[rand() % dsts_size_cur]; + dst = dsts_cur[rand() % dsts_size_cur]; } else { - dst = dsts[0]; + dst = dsts_cur[0]; } }