]> git.proxmox.com Git - mirror_frr.git/commitdiff
ospfd: Fixes a crash of the daemon with a snmp walk
authorJorge Boncompte [DTI2] <jorge@dti2.net>
Mon, 9 Apr 2012 16:03:57 +0000 (18:03 +0200)
committerDavid Lamparter <equinox@diac24.net>
Mon, 16 Apr 2012 16:37:17 +0000 (18:37 +0200)
    - And allows to walk the LSDB.

Signed-off-by: Jorge Boncompte [DTI2] <jorge@dti2.net>
ospfd/ospf_snmp.c

index cc4974ce6d32ca42d6db89c46a089e5b8fa685a1..9c9dd47a759ec74536e77b2406d46960c7eb1a11 100644 (file)
@@ -934,7 +934,7 @@ ospfLsdbLookup (struct variable *v, oid *name, size_t *length,
   struct ospf *ospf;
   struct ospf_area *area;
   struct ospf_lsa *lsa;
-  unsigned int len;
+  int len;
   int type_next;
   int ls_id_next;
   int router_id_next;
@@ -992,7 +992,7 @@ ospfLsdbLookup (struct variable *v, oid *name, size_t *length,
       if (len == IN_ADDR_SIZE)
        area = ospf_area_lookup_by_area_id (ospf, *area_id);
       else
-       area = ospf_area_lookup_next (ospf, area_id, len == 0 ? 1 : 0);
+       area = ospf_area_lookup_next (ospf, area_id, 1);
 
       if (area == NULL)
        return NULL;
@@ -1000,8 +1000,8 @@ ospfLsdbLookup (struct variable *v, oid *name, size_t *length,
       do 
        {
          /* Next we lookup type. */
-         offset += IN_ADDR_SIZE;
-         offsetlen -= IN_ADDR_SIZE;
+         offset += len;
+         offsetlen -= len;
          len = offsetlen;
 
          if (len <= 0)