From 2d67d5a2b57ae19a526e267258c71649e5e86d29 Mon Sep 17 00:00:00 2001 From: Renato Westphal Date: Tue, 12 Sep 2017 09:46:31 -0300 Subject: ldpd: fix broken label allocation Once ldpd allocated label 48 for a given FEC, all subsequent requests for a new label would return the same value (48). The problem is that we were left shifting an uint32_t value up to 64 times, losing important information. Signed-off-by: Renato Westphal --- ldpd/lde.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ldpd/lde.c b/ldpd/lde.c index 37d64eaf50..519fcd9d11 100644 --- a/ldpd/lde.c +++ b/ldpd/lde.c @@ -1680,7 +1680,8 @@ static uint32_t lde_get_next_label(void) { struct label_chunk *label_chunk; - uint32_t i, pos, size; + uint32_t i, size; + uint64_t pos; uint32_t label = NO_LABEL; while (current_label_chunk) { -- cgit v1.2.3