From 9149c63517c41681a6cf07e11e6b85f8458dffdb Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Fri, 18 Dec 2020 14:38:40 -0500 Subject: [PATCH] lib: Add a warning for when we are not operating correctly There exists a possibilty that route map dependencies have gotten wrong. Prevent the crash and warn the user that we may be in trouble. Signed-off-by: Donald Sharp --- lib/routemap.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/routemap.c b/lib/routemap.c index 5082a9fa9a..1c2f43d968 100644 --- a/lib/routemap.c +++ b/lib/routemap.c @@ -2767,12 +2767,19 @@ static int route_map_dep_update(struct hash *dephash, const char *dep_name, memset(&tmp_dep_data, 0, sizeof(struct route_map_dep_data)); tmp_dep_data.rname = rname; dep_data = hash_lookup(dep->dep_rmap_hash, &tmp_dep_data); - - if (!dep_data) + /* + * If dep_data is NULL then something has gone seriously + * wrong in route-map handling. Note it and prevent + * the crash. + */ + if (!dep_data) { + zlog_warn( + "route-map dependency for route-map %s: %s is not correct", + rmap_name, dep_name); goto out; + } - if (dep_data->refcnt) - dep_data->refcnt--; + dep_data->refcnt--; if (!dep_data->refcnt) { ret_dep_data = hash_release(dep->dep_rmap_hash,