From 2a178cdd7c503a631285fea779199d5e8e3bfbe7 Mon Sep 17 00:00:00 2001 From: Renato Westphal Date: Tue, 12 Sep 2017 09:46:31 -0300 Subject: [PATCH] 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 4460b424d2..3f84454b39 100644 --- a/ldpd/lde.c +++ b/ldpd/lde.c @@ -1693,7 +1693,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) { -- 2.39.5