From: Igor Ryzhov Date: Fri, 26 Feb 2021 16:17:28 +0000 (+0300) Subject: lib: fix crash when iterating over nb operational data X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=a5ecac92c497110d12db2c454df61615ef77a6ed;p=mirror%2Ffrr.git 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 --- 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) {