From a5ecac92c497110d12db2c454df61615ef77a6ed Mon Sep 17 00:00:00 2001 From: Igor Ryzhov Date: Fri, 26 Feb 2021 19:17:28 +0300 Subject: [PATCH] lib: fix crash when iterating over nb operational data Example: ``` show yang operational-data /frr-routing:routing/control-plane-protocols/control-plane-protocol[type='frr-staticd:staticd'][name='staticd'][vrf='default'] staticd ``` Signed-off-by: Igor Ryzhov --- lib/northbound.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/northbound.c b/lib/northbound.c index 0cf9ce4e60..3ebbe29680 100644 --- a/lib/northbound.c +++ b/lib/northbound.c @@ -1809,6 +1809,16 @@ int nb_oper_data_iterate(const char *xpath, struct yang_translator *translator, /* Find the list entry pointer. */ nn = dn->schema->priv; + if (!nn->cbs.lookup_entry) { + flog_warn( + EC_LIB_NB_OPERATIONAL_DATA, + "%s: data path doesn't support iteration over operational data: %s", + __func__, xpath); + list_delete(&list_dnodes); + yang_dnode_free(dnode); + return NB_ERR; + } + list_entry = nb_callback_lookup_entry(nn, list_entry, &list_keys); if (list_entry == NULL) { -- 2.39.5