ospf6d: fix segfault when requesting inexistant interfaces or areas
diff --git a/ospf6d/ospf6_snmp.c b/ospf6d/ospf6_snmp.c
index a42e57a..f8a3b92 100644
--- a/ospf6d/ospf6_snmp.c
+++ b/ospf6d/ospf6_snmp.c
@@ -708,12 +708,13 @@
       else if (v->magic & OSPFv3WWAREATABLE)
         {
           oa = ospf6_area_lookup (area_id, ospf6);
+          if (!oa) return NULL;
           lsa = ospf6_lsdb_lookup (type, id, adv_router, oa->lsdb);
         }
       else if (v->magic & OSPFv3WWLINKTABLE)
         {
           oi = ospf6_interface_lookup_by_ifindex (ifindex);
-          if (oi->instance_id != instid) return NULL;
+          if (!oi || oi->instance_id != instid) return NULL;
           lsa = ospf6_lsdb_lookup (type, id, adv_router, oi->lsdb);
         }
     }
@@ -875,7 +876,7 @@
   if (exact)
     {
       oi = ospf6_interface_lookup_by_ifindex (ifindex);
-      if (oi->instance_id != instid) return NULL;
+      if (!oi || oi->instance_id != instid) return NULL;
     }
   else
     {
@@ -1034,8 +1035,8 @@
   if (exact)
     {
       oi = ospf6_interface_lookup_by_ifindex (ifindex);
+      if (!oi || oi->instance_id != instid) return NULL;
       on = ospf6_neighbor_lookup (rtrid, oi);
-      if (oi->instance_id != instid) return NULL;
     }
   else
     {
@@ -1060,7 +1061,8 @@
               break;
           }
           if (on) break;
-          oi = on = NULL;
+          oi = NULL;
+          on = NULL;
         }
 
       list_delete_all_node (ifslist);