]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Cast up to 64 bit to prevent overflow
authorDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 25 Oct 2019 00:00:01 +0000 (20:00 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 25 Oct 2019 00:00:01 +0000 (20:00 -0400)
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_bsm.c

index ffaa858fa7f8e659647136d0b36c8fb29be50b4a..9d42666b92da587a2ae80444e61db143a98808bc 100644 (file)
@@ -1033,7 +1033,8 @@ static uint32_t hash_calc_on_grp_rp(struct prefix group, struct in_addr rp,
        else
                grpaddr = grpaddr & mask;
        rp_add = ntohl(rp.s_addr);
-       temp = 1103515245 * ((1103515245 * grpaddr + 12345) ^ rp_add) + 12345;
+       temp = 1103515245 * ((1103515245 * (uint64_t)grpaddr + 12345) ^ rp_add)
+              + 12345;
        hash = temp & (0x7fffffff);
        return hash;
 }