]> git.proxmox.com Git - mirror_frr.git/commitdiff
ldpd: fix broken label allocation
authorRenato Westphal <renato@opensourcerouting.org>
Tue, 12 Sep 2017 12:46:31 +0000 (09:46 -0300)
committerRenato Westphal <renato@opensourcerouting.org>
Tue, 12 Sep 2017 12:52:54 +0000 (09:52 -0300)
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 <renato@opensourcerouting.org>
ldpd/lde.c

index 4460b424d253a8a52dcffabab51598babd141501..3f84454b391e6b43a785c2692acf07fbcb0da0c2 100644 (file)
@@ -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) {