From 0f538858c2bd22072539c8dbd4ad87601b0fc8ac Mon Sep 17 00:00:00 2001 From: Rafael Zalamena Date: Mon, 4 Oct 2021 18:10:58 -0300 Subject: [PATCH] lib: prevent gRPC assert on missing YANG node `yang_dnode_get` will `assert` if no YANG node/model exist, so lets test for its existence first before trying to access it. This `assert` is only acceptable for internal FRR usage otherwise we might miss typos or unmatching YANG models nodes/leaves. For gRPC usage we should let users attempt to use non existing models without `assert`ing. Signed-off-by: Rafael Zalamena --- lib/northbound_grpc.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/northbound_grpc.cpp b/lib/northbound_grpc.cpp index 71f07dfe86..e227d0385c 100644 --- a/lib/northbound_grpc.cpp +++ b/lib/northbound_grpc.cpp @@ -344,6 +344,10 @@ static struct lyd_node *get_dnode_config(const std::string &path) { struct lyd_node *dnode; + if (!yang_dnode_exists(running_config->dnode, + path.empty() ? NULL : path.c_str())) + return NULL; + dnode = yang_dnode_get(running_config->dnode, path.empty() ? NULL : path.c_str()); if (dnode) -- 2.39.5