summaryrefslogtreecommitdiff
path: root/lib/zclient.c
diff options
context:
space:
mode:
authorQuentin Young <qlyoung@cumulusnetworks.com>2020-03-02 18:42:56 -0500
committerQuentin Young <qlyoung@cumulusnetworks.com>2020-04-13 13:25:25 -0400
commit7239d3d9e6c131c859dae627c1238b5838a5ab8e (patch)
treee1c14fd330b2e8ad079ae9904d7166864cb766a2 /lib/zclient.c
parentefc7191bbef83ff619dcafcd6c91d19dd214ee72 (diff)
lib: handle bogus VRF backend type
And use an enum... Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Diffstat (limited to 'lib/zclient.c')
-rw-r--r--lib/zclient.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/zclient.c b/lib/zclient.c
index b32be1c310..673e71c515 100644
--- a/lib/zclient.c
+++ b/lib/zclient.c
@@ -3031,7 +3031,14 @@ static void zclient_capability_decode(ZAPI_CALLBACK_ARGS)
uint8_t mpls_enabled;
STREAM_GETL(s, vrf_backend);
- vrf_configure_backend(vrf_backend);
+
+ if (vrf_backend < 0 || vrf_configure_backend(vrf_backend)) {
+ flog_err(EC_LIB_ZAPI_ENCODE,
+ "%s: Garbage VRF backend type: %d\n", __func__,
+ vrf_backend);
+ goto stream_failure;
+ }
+
memset(&cap, 0, sizeof(cap));
STREAM_GETC(s, mpls_enabled);