Mark, sorry, I must have somehow missed your bug report.
I have forwarded your bugreport to the upstream. O. On Mon, May 6, 2013 at 12:42 PM, Mark Wooding <m...@distorted.org.uk> wrote: > Now that wheezy's been released -- without the patch I submitted over a > year ago -- I have to fix all of my machines again, so I've respun the > patch, and here it is. Not that I have a great deal of hope that > submitting it here will actually cause anything to happen. > > Index: bird-1.3.7/nest/iface.c > =================================================================== > --- bird-1.3.7.orig/nest/iface.c 2013-05-06 11:35:21.000000000 +0100 > +++ bird-1.3.7/nest/iface.c 2013-05-06 11:37:13.000000000 +0100 > @@ -289,7 +289,7 @@ > struct iface * > if_update(struct iface *new) > { > - struct iface *i; > + struct iface *i, *j, *jj; > unsigned c; > > WALK_LIST(i, iface_list) > @@ -324,6 +324,26 @@ > init_list(&i->neighbors); > i->flags |= IF_UPDATED | IF_TMP_DOWN; /* Tmp down as we > don't have addresses yet */ > add_tail(&iface_list, &i->n); > + > + /* If we're unlucky then what just happened is that an interface had its > + * name changed. In that case, we've just invented a new iface node with > + * the new name, but with the same index number as an existing node, and > + * we've just arranged so that a search by index will find the old node and > + * not the new one. This isn't good, so trawl through the list again, > + * picking out nodes with colliding indices and moving them to the end of > + * the list. > + */ > + WALK_LIST_DELSAFE(j, jj, iface_list) > + { > + if (i == j) > + break; > + else if (i->index == j->index) > + { > + rem_node(&j->n); > + add_tail(&iface_list, &j->n); > + } > + } > + > return i; > } > > > -- [mdw] -- Ondřej Surý <ond...@sury.org> -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org