0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-11-09 12:48:43 +00:00
The BIRD project aims to develop a fully functional dynamic IP routing daemon. https://bird.network.cz
Go to file
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
client Major RIP redesign 2015-10-05 13:18:10 +02:00
conf Channels - explicit links between protocols and tables 2016-02-01 10:28:50 +01:00
doc Major RIP redesign 2015-10-05 13:18:10 +02:00
filter Rewrite roa_check() for integrated BIRD 2016-01-20 16:46:58 +01:00
lib Channels - explicit links between protocols and tables 2016-02-01 10:28:50 +01:00
misc unsigned [int] -> uint 2015-06-08 02:24:08 +02:00
nest Fix closing flushed channel 2016-02-08 16:08:50 +01:00
proto Channels - explicit links between protocols and tables 2016-02-01 10:28:50 +01:00
sysdep BSD: compilation error fix 2016-02-01 10:28:50 +01:00
tools Follow-up work on integration 2015-12-21 03:33:18 +01:00
.cvsignore Added bird.conf to .cvsignore and created an example configuration file. 1999-01-15 17:18:41 +00:00
aclocal.m4 BFD protocol, ready for release. 2013-11-19 22:33:48 +01:00
bird.conf Changes static route targets drop/reject to blackhole/unreachable. 2012-11-27 02:08:04 +01:00
configure.in All the current pthread implementations are OK and working with us. 2016-01-21 14:55:33 +01:00
Doc Description of protocol module moved to where it belongs. If documentation 2000-06-05 09:51:24 +00:00
INSTALL Adds INSTALL file. 2009-05-25 01:41:20 +02:00
NEWS NEWS and version update 2015-04-20 12:27:00 +02:00
README Minor update to test commits 2015-07-28 12:56:51 +02:00
TODO NEWS and version update. 2012-03-22 12:29:02 +01:00

		       BIRD Internet Routing Daemon

		(c) 1998--2008  Martin Mares <mj@ucw.cz>
                (c) 1998--2000  Pavel Machek <pavel@ucw.cz>
                (c) 1998--2008  Ondrej Filip <feela@network.cz>
                (c) 2009--2013  CZ.NIC z.s.p.o.

================================================================================

The BIRD project is an attempt to create a routing daemon running on UNIX-like
systems (but not necessarily limited to them) with full support of all modern
routing protocols, easy to use configuration interface and powerful route
filtering language.

If you want to help us debugging, enhancing and porting BIRD or just lurk
around to see what's going to develop from this strange creature, feel free
to subscribe to the BIRD users mailing list (bird-users@bird.network.cz),
send subscribes to majordomo at the same machine).  Bug reports, suggestions,
feature requests (: and code :) are welcome.

You can download the latest version from ftp://bird.network.cz/pub/bird/
and look at the BIRD home page at http://bird.network.cz/.

BIRD development started as a student project at the Faculty of Math
and Physics, Charles University, Prague, Czech Republic under supervision
of RNDr. Libor Forst <forst@cuni.cz>. BIRD has been developed and supported
by CZ.NIC z.s.p.o. http://www.nic.cz/ since 2009.

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


How to install BIRD:

	./configure
	make
	make install
	vi /usr/local/etc/bird.conf

Online documentation is available as HTML files in the doc directory,
you can install it by `make install-docs' and rebuild it by `make docs',
but for the latter you need SGMLtools and LaTeX to be installed on your
machine. You can also download a neatly formatted PostScript version
as a separate archive (bird-doc-*.tar.gz).

What do we support:

	o  Both IPv4 and IPv6 (use --enable-ipv6 when configuring)
	o  Multiple routing tables
	o  BGP
	o  RIP
	o  OSPF
	o  Static routes
	o  Inter-table protocol
	o  IPv6 router advertisements
	o  Bidirectional Forwarding Detection (BFD)
	o  Command-line interface (using the `birdc' client; to get
	   some help, just press `?')
	o  Soft reconfiguration -- no online commands for changing the
	   configuration in very limited ways, just edit the configuration
	   file and issue a `configure' command or send SIGHUP and BIRD
	   will start using the new configuration, possibly restarting
	   protocols affected by the configuration changes.
	o  Powerful language for route filtering (see doc/bird.conf.example).

What is missing:

	o  See the TODO list

Good Luck and enjoy the BIRD :)
						The BIRD Team