aboutsummaryrefslogtreecommitdiffstats
path: root/hicn-light/src/hicn/core/fib.c
diff options
context:
space:
mode:
Diffstat (limited to 'hicn-light/src/hicn/core/fib.c')
-rw-r--r--hicn-light/src/hicn/core/fib.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/hicn-light/src/hicn/core/fib.c b/hicn-light/src/hicn/core/fib.c
index 2e8492457..70c5599fb 100644
--- a/hicn-light/src/hicn/core/fib.c
+++ b/hicn-light/src/hicn/core/fib.c
@@ -381,6 +381,8 @@ fib_entry_t *fib_contains(const fib_t *fib, const hicn_prefix_t *prefix) {
if (!curr) return NULL;
if (search.match_len != prefix_len) return NULL;
+ if (prefix_len != search.prefix_len) return NULL;
+
return curr->is_used ? curr->entry : NULL;
}
@@ -488,7 +490,7 @@ static void fib_node_remove(fib_t *fib, const hicn_prefix_t *prefix) {
case 0:
_fib_remove(fib, curr, search.parent);
- if (!search.parent->is_used)
+ if (search.parent && !search.parent->is_used)
_fib_remove(fib, search.parent, search.gparent);
break;
}