]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: avoid memcmp(NULL, NULL) 5638/head
authorQuentin Young <qlyoung@cumulusnetworks.com>
Tue, 7 Jan 2020 05:51:35 +0000 (00:51 -0500)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Tue, 7 Jan 2020 05:51:35 +0000 (00:51 -0500)
Undefined behavior

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
bgpd/bgp_attr.c

index fe7a80ccf28c58f676c2f6c84c256bdefe3a4412..bdac2a8dcc20669e024bf644c998d9e2afe7601d 100644 (file)
@@ -152,8 +152,9 @@ static bool cluster_hash_cmp(const void *p1, const void *p2)
        const struct cluster_list *cluster2 = p2;
 
        return (cluster1->length == cluster2->length
-               && memcmp(cluster1->list, cluster2->list, cluster1->length)
-                          == 0);
+               && (cluster1->list == cluster2->list
+                   || memcmp(cluster1->list, cluster2->list, cluster1->length)
+                              == 0));
 }
 
 static void cluster_free(struct cluster_list *cluster)