summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/northbound_oper.c3
-rw-r--r--ripd/ripd.c10
2 files changed, 10 insertions, 3 deletions
diff --git a/lib/northbound_oper.c b/lib/northbound_oper.c
index 626c37082e..d9ad9b1701 100644
--- a/lib/northbound_oper.c
+++ b/lib/northbound_oper.c
@@ -157,7 +157,8 @@ nb_op_create_yield_state(const char *xpath, struct yang_translator *translator,
/* remove trailing '/'s */
while (darr_len(ys->xpath) > 1 && ys->xpath[darr_len(ys->xpath) - 2] == '/') {
darr_setlen(ys->xpath, darr_len(ys->xpath) - 1);
- *darr_last(ys->xpath) = 0;
+ if (darr_last(ys->xpath))
+ *darr_last(ys->xpath) = 0;
}
ys->xpath_orig = darr_strdup(xpath);
ys->translator = translator;
diff --git a/ripd/ripd.c b/ripd/ripd.c
index 2d038507ab..c850df52ec 100644
--- a/ripd/ripd.c
+++ b/ripd/ripd.c
@@ -282,8 +282,14 @@ struct rip_info *rip_ecmp_replace(struct rip *rip, struct rip_info *rinfo_new)
*/
struct rip_info *rip_ecmp_delete(struct rip *rip, struct rip_info *rinfo)
{
- struct route_node *rp = rinfo->rp;
- struct list *list = (struct list *)rp->info;
+ struct route_node *rp;
+ struct list *list;
+
+ if (rinfo == NULL)
+ return NULL;
+
+ rp = rinfo->rp;
+ list = (struct list *)rp->info;
EVENT_OFF(rinfo->t_timeout);