1. 12 May, 2016 1 commit
  2. 10 May, 2016 4 commits
  3. 08 Apr, 2016 2 commits
  4. 07 Apr, 2016 3 commits
  5. 06 Apr, 2016 3 commits
    • Ondřej Zajíček's avatar
      IO: Avoid multiple event cycles in one loop cycle. · bd22d7f4
      Ondřej Zajíček authored
      Event cycle may took too much time and trigger next timer events, so
      avoid cycling between timer and event cycles inside the loop cycle.
      bd22d7f4
    • Ondřej Zajíček's avatar
      IO: Replace RX priority heuristic with explicit mark · 9e7b3ebd
      Ondřej Zajíček authored
      In BIRD, RX has lower priority than TX with the exception of RX from
      control socket. The patch replaces heuristic based on socket type with
      explicit mark and uses it for both control socket and BGP session waiting
      to be established.
      
      This should avoid an issue when during heavy load, outgoing connection
      could connect (TX event), send open, but then failed to receive OPEN /
      establish in time, not sending notifications between and therefore
      got hold timer expired error from the neighbor immediately after it
      finally established the connection.
      9e7b3ebd
    • Ondřej Zajíček's avatar
      KRT: Fix route learn scan when route changed · e86cfd41
      Ondřej Zajíček authored
      When a kernel route changed, function krt_learn_scan() noticed that and
      replaced the route in internal kernel FIB, but after that, function
      krt_learn_prune() failed to propagate the new route to the nest, because
      it confused the new route with the (removed) old best route and decided
      that the best route did not changed.
      
      Wow, the original code (and the bug) is almost 17 years old.
      e86cfd41
  6. 30 Mar, 2016 1 commit
  7. 23 Mar, 2016 5 commits
  8. 22 Mar, 2016 1 commit
  9. 18 Mar, 2016 1 commit
  10. 17 Mar, 2016 2 commits
  11. 15 Mar, 2016 1 commit
  12. 11 Mar, 2016 1 commit
  13. 10 Mar, 2016 3 commits
  14. 25 Feb, 2016 3 commits
  15. 19 Feb, 2016 1 commit
  16. 16 Feb, 2016 1 commit
  17. 11 Feb, 2016 2 commits
    • Ondřej Zajíček's avatar
      Unix: Fix bug in syslog name handling · c2106b67
      Ondřej Zajíček authored
      Pointer to current_log_name has to be changed even if the name is the
      same, because the old one will be invalid/freed after reconfiguration.
      c2106b67
    • Ondřej Zajíček's avatar
      BGP: Fix bug in incoming connection handling · 487c6961
      Ondřej Zajíček authored
      When a BGP session was established by an outgoing connection with
      Graceful Restart behavior negotiated, a pending incoming connection in
      OpenSent state, and another incoming connection was received, then the
      outgoing connection (and whole BGP session) was closed, but the old
      incoming connection was just overwritten by the new one. That later
      caused a crash when the hold timer from the old connection fired.
      487c6961
  18. 10 Feb, 2016 1 commit
  19. 08 Feb, 2016 1 commit
    • Pavel Tvrdík's avatar
      Fix closing flushed channel · 1bb3ecb2
      Pavel Tvrdík authored
      Fix reading from freed memory.
        Free at: channel_set_state(c, CS_DOWN)
        Read at: WALK_LIST2_DELSAFE(c, n, x, tab->channels, table_node)
      
      ==00:00:00:00.261 24718==
      ==00:00:09:31.755 24718== Invalid read of size 8
      ==00:00:09:31.755 24718==    at 0x4061BA: rt_prune_table (rt-table.c:1688)
      ==00:00:09:31.755 24718==    by 0x405D5E: rt_event (rt-table.c:1559)
      ==00:00:09:31.755 24718==    by 0x45D089: ev_run (event.c:85)
      ==00:00:09:31.755 24718==    by 0x45D158: ev_run_list (event.c:142)
      ==00:00:09:31.755 24718==    by 0x462814: io_loop (io.c:2412)
      ==00:00:09:31.755 24718==    by 0x468712: main (main.c:833)
      ==00:00:09:31.755 24718==  Address 0x5601538 is 136 bytes inside a block of size 304 free'd
      ==00:00:09:31.755 24718==    at 0x4C29D2A: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==00:00:09:31.755 24718==    by 0x46FF3E: rfree (resource.c:166)
      ==00:00:09:31.755 24718==    by 0x470309: mb_free (resource.c:415)
      ==00:00:09:31.755 24718==    by 0x406A6B: rt_unlock_table (rt-table.c:1921)
      ==00:00:09:31.755 24718==    by 0x40DAE3: channel_do_down (proto.c:297)
      ==00:00:09:31.755 24718==    by 0x40DD46: channel_set_state (proto.c:359)
      ==00:00:09:31.755 24718==    by 0x4061AD: rt_prune_table (rt-table.c:1692)
      ==00:00:09:31.755 24718==    by 0x405D5E: rt_event (rt-table.c:1559)
      ==00:00:09:31.755 24718==    by 0x45D089: ev_run (event.c:85)
      ==00:00:09:31.755 24718==    by 0x45D158: ev_run_list (event.c:142)
      ==00:00:09:31.755 24718==    by 0x462814: io_loop (io.c:2412)
      ==00:00:09:31.755 24718==    by 0x468712: main (main.c:833)
      ==00:00:09:31.755 24718==  Block was alloc'd at
      ==00:00:09:31.755 24718==    at 0x4C28C10: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==00:00:09:31.755 24718==    by 0x470FBC: bird_xmalloc (xmalloc.c:29)
      ==00:00:09:31.755 24718==    by 0x4701E6: mb_alloc (resource.c:339)
      ==00:00:09:31.755 24718==    by 0x406C29: rt_commit (rt-table.c:1977)
      ==00:00:09:31.755 24718==    by 0x45C36D: config_do_commit (conf.c:269)
      ==00:00:09:31.755 24718==    by 0x45C545: config_commit (conf.c:361)
      ==00:00:09:31.755 24718==    by 0x4686F9: main (main.c:822)
      ==00:00:09:31.755 24718==
      1bb3ecb2
  20. 01 Feb, 2016 3 commits