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 <rzalamena@opensourcerouting.org>
This commit is contained in:
Rafael Zalamena 2021-10-04 18:10:58 -03:00
parent fd7abfa80b
commit 0f538858c2

View File

@ -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)