summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/routemap.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/routemap.c b/lib/routemap.c
index 210512212d..3d69a3495a 100644
--- a/lib/routemap.c
+++ b/lib/routemap.c
@@ -2747,7 +2747,12 @@ 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);
- dep_data->refcnt--;
+
+ if (!dep_data)
+ goto out;
+
+ if (dep_data->refcnt)
+ dep_data->refcnt--;
if (!dep_data->refcnt) {
ret_dep_data = hash_release(dep->dep_rmap_hash,