Ignore host routes to self.

PtP links with /32 masks adds host routes to the remote host,
see RFC 2328, 12.4.1.1, Option 1.
Make sure that such routes are ignored
diff --git a/ospfd/ospf_spf.c b/ospfd/ospf_spf.c
index 23d45dd..15d27be 100644
--- a/ospfd/ospf_spf.c
+++ b/ospfd/ospf_spf.c
@@ -981,7 +981,21 @@
                 (l->m[0].tos_count * ROUTER_LSA_TOS_SIZE));
 
           if (l->m[0].type == LSA_LINK_TYPE_STUB)
-            ospf_intra_add_stub (rt, l, v, area);
+	    {
+	      /* PtP links with /32 masks adds host routes to the remote host,
+		 see RFC 2328, 12.4.1.1, Option 1.
+		 Make sure that such routes are ignored */
+	      /* XXX: Change to breadth-first and avoid the lookup */
+	      if (l->link_data.s_addr == 0xffffffff &&
+		  ospf_if_lookup_by_local_addr (area->ospf, NULL, l->link_id))
+		{
+		  if (IS_DEBUG_OSPF_EVENT)
+		    zlog_debug ("ospf_spf_process_stubs(): ignoring host route "
+				"%s/32 to self.", inet_ntoa (l->link_id));
+		  continue;
+		}
+	      ospf_intra_add_stub (rt, l, v, area);
+	    }
         }
     }