Origin: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=713454 Index: b/modules/ntrack-libnl.c =================================================================== --- a/modules/ntrack-libnl.c +++ b/modules/ntrack-libnl.c @@ -530,7 +530,8 @@ update_connectivity (ntrack_monitor_t *s op_default_route_disappeared ((struct _ntrack_monitor_arch*) self, nl_info); } else if (nl_info->topmost_route && topmost_route) { int diff_bits; - if ((diff_bits = (route_obj_ops.oo_id_attrs | ROUTE_ATTR_OIF + struct nl_object *nl_obj = nl_object_alloc(&route_obj_ops); + if ((diff_bits = (nl_object_get_id_attrs(nl_obj) | ROUTE_ATTR_OIF | ROUTE_ATTR_GATEWAY) & nl_object_diff (OBJ_CAST (nl_info->topmost_route), OBJ_CAST (topmost_route)))) { @@ -556,6 +557,7 @@ update_connectivity (ntrack_monitor_t *s nl_info->topmost_route = topmost_route; op_default_route_changed ((struct _ntrack_monitor_arch*) self, nl_info); } + nl_object_free(nl_obj); } else { /* on first run of update_connectivity we emit a disappeared signal if no * new topmost_route was found; in this way monitors can update their initial