0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 01:31:55 +00:00
bird/nest
Pavel Tvrdík 1bb3ecb2a5 Fix closing flushed channel
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==
2016-02-08 16:08:50 +01:00
..
a-path.c unsigned [int] -> uint 2015-06-08 02:24:08 +02:00
a-set.c unsigned [int] -> uint 2015-06-08 02:24:08 +02:00
attrs.h unsigned [int] -> uint 2015-06-08 02:24:08 +02:00
bfd.h Static: Support for BFD controlled static routes 2015-07-24 18:02:07 +02:00
bird.h Initial commit on integrated BIRD 2015-11-05 12:48:52 +01:00
cli.c unsigned [int] -> uint 2015-06-08 02:24:08 +02:00
cli.h unsigned [int] -> uint 2015-06-08 02:24:08 +02:00
cmds.c Delete old ROA code 2016-01-20 16:46:58 +01:00
cmds.h Implements eval command and minor CLI cleanups. 2013-07-25 13:15:32 +02:00
config.Y Channels - explicit links between protocols and tables 2016-02-01 10:28:50 +01:00
Doc Documented sockets, events and timers. 2000-06-05 12:19:12 +00:00
iface.c Channels - explicit links between protocols and tables 2016-02-01 10:28:50 +01:00
iface.h Follow-up commit on integrated BIRD 2015-11-12 02:03:59 +01:00
locks.c Fixes a bug in locking code. 2015-02-21 12:30:14 +01:00
locks.h Temporary integrated OSPF commit. 2014-07-18 18:24:12 +02:00
Makefile Initial commit on integrated BIRD 2015-11-05 12:48:52 +01:00
mrtdump.h NEWS, version and documentation update. 2010-01-06 16:57:20 +01:00
neighbor.c Channels - explicit links between protocols and tables 2016-02-01 10:28:50 +01:00
password.c Major RIP redesign 2015-10-05 13:18:10 +02:00
password.h Major RIP redesign 2015-10-05 13:18:10 +02:00
proto-hooks.c Better support for multitable protocols. 2012-03-15 12:13:04 +01:00
proto.c Fixed sigsegv for missing proto->rt_notify hook 2016-02-01 16:01:18 +01:00
proto.sgml Channels - explicit links between protocols and tables 2016-02-01 10:28:50 +01:00
protocol.h Channels - explicit links between protocols and tables 2016-02-01 10:28:50 +01:00
route.h Channels - explicit links between protocols and tables 2016-02-01 10:28:50 +01:00
rt-attr.c Move ID allocator to a separate file and use it also in OSPF 2015-12-29 15:42:12 +01:00
rt-dev.c Channels - explicit links between protocols and tables 2016-02-01 10:28:50 +01:00
rt-dev.h Channels - explicit links between protocols and tables 2016-02-01 10:28:50 +01:00
rt-fib.c BSD: Explicitly dropping routes with mismatched AF's. 2016-01-21 14:55:33 +01:00
rt-table.c Fix closing flushed channel 2016-02-08 16:08:50 +01:00