]> git.proxmox.com Git - mirror_frr.git/commitdiff
Merge pull request #5620 from qlyoung/fix-zebra-vrf-label-afi-check
authorMark Stapp <mjs@voltanet.io>
Thu, 23 Jan 2020 15:59:19 +0000 (10:59 -0500)
committerGitHub <noreply@github.com>
Thu, 23 Jan 2020 15:59:19 +0000 (10:59 -0500)
Fix zebra vrf label afi check

lib/zebra.h
zebra/zapi_msg.c

index 00d422cdd149529be144cca53c9c3051fcaa813f..b2f0202c53865ee73bda6b114a4685ee38056bf7 100644 (file)
@@ -360,6 +360,8 @@ typedef enum {
        AFI_MAX = 4
 } afi_t;
 
+#define IS_VALID_AFI(a) ((a) > AFI_UNSPEC && (a) < AFI_MAX)
+
 /* Subsequent Address Family Identifier. */
 typedef enum {
        SAFI_UNSPEC = 0,
index e3feddba521906dbda602cc06a53ca4e62437723..c21d00bbe652cd2d44faa0c7e0faffeba2076baa 100644 (file)
@@ -2277,6 +2277,12 @@ static void zread_vrf_label(ZAPI_HANDLER_ARGS)
        s = msg;
        STREAM_GETL(s, nlabel);
        STREAM_GETC(s, afi);
+
+       if (!(IS_VALID_AFI(afi))) {
+               zlog_warn("Invalid AFI for VRF label: %u", afi);
+               return;
+       }
+
        if (nlabel == zvrf->label[afi]) {
                /*
                 * Nothing to do here move along