Go to file
Renato Westphal e75f810c2f ldpd: simplify initialization of the child processes
In order to have separate ASLR/cookies per process, ldpd calls exec()
in the child processes after fork() (this is also known as the fork+exec
model).

This is an important security feature but it makes the initialization
of the child processes a bit more complicated as they're not a copy of
the parent anymore, so all parameters given via command line are lost.

To solve this problem, we were creating an argv array by hand with all
necessary parameters and providing it to the exec() syscall. This works
but it's a very ugly solution. This patch introduces a different approach
to solve the problem: send an IMSG_INIT message to the child processes
with all parameters they need in order to initialize properly. This
makes adding additional initialization parameters much more convenient
and less error prone.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>

Conflicts:
	ldpd/ldpd.c
	ldpd/ldpd.h
2017-06-05 12:23:02 -03:00
bgpd bgpd: remove encap safi vty related files bgp_encap.h|c 2017-05-23 15:34:43 -04:00
cumulus Merge branch stable/2.0 into stable/3.0 2017-05-18 12:23:13 +02:00
debian *: Remove ability to install frr_sudoers 2017-05-09 16:19:48 -04:00
doc Change Frr.conf to frr.conf 2017-05-17 08:48:46 -04:00
fpm *: Convert libfpm -> libfrrfpm 2017-02-03 08:43:09 -05:00
gdb gdb: Add a directory of files with gdb macros 2016-05-26 15:33:30 +00:00
init build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
isisd Address the error "Dead assignment" of static analysif 2017-05-10 15:46:24 -04:00
ldpd ldpd: simplify initialization of the child processes 2017-06-05 12:23:02 -03:00
lib lib: remove BGP_ENCAP(V6)_NODE 2017-05-23 15:00:53 -04:00
m4 build: include copy of pkg.m4, fix invocation 2017-01-18 18:01:53 +01:00
nhrpd nhrpd: install access-list commands 2017-05-19 20:10:50 +00:00
ospf6d ospf6d: fix use-after-free 2017-05-22 02:14:29 +00:00
ospfclient ospfclient: fix gcc -O0 build 2017-02-14 03:31:26 +01:00
ospfd ospfd: remember format for ospf area id 2017-05-19 18:40:18 +00:00
pimd Merge pull request #583 from chiragshah6/pim_dev_3_0 2017-05-29 12:37:26 -06:00
pkgsrc build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
ports pimd: merge pimd as of 2015-01-19 2016-05-25 20:38:32 -04:00
qpb Protobuf: Update library name to reflect name change to FRR 2017-01-20 02:59:10 +07:00
redhat Merge branch 'stable/2.0' 2017-04-04 19:01:47 +02:00
ripd Address the error "Dead assignment" of static analysif 2017-05-10 15:46:24 -04:00
ripngd Address the error "Dead assignment" of static analysif 2017-05-10 15:46:24 -04:00
snapcraft Pre-revert nonmergeable changes 2017-05-18 12:09:50 +02:00
solaris Rename: freerangerouting --> frrouting 2017-03-30 14:24:05 -04:00
tests Merge branch 'stable/2.0' 2017-04-04 19:01:47 +02:00
tools Merge branch stable/2.0 into stable/3.0 2017-05-18 12:23:13 +02:00
vtysh vtysh: Add back some missing bgp commands 2017-05-30 09:30:04 -04:00
watchfrr Lowercase frr.conf 2017-03-09 09:45:00 -05:00
zebra Merge pull request #512 from bingen/tmp_lm_relay_async 2017-05-18 07:09:07 -04:00
.gitignore nhrpd: implement next hop resolution protocol 2017-03-07 16:20:29 +01:00
AUTHORS Initial revision 2002-12-13 20:15:29 +00:00
bootstrap.sh autoreconf -i 2007-02-06 19:28:28 +00:00
buildtest.sh buildtest.sh: Change name from quagga to frr 2017-01-20 00:36:29 +07:00
ChangeLog Rename: freerangerouting --> frrouting 2017-03-30 14:24:05 -04:00
common.am *: Convert libfpm -> libfrrfpm 2017-02-03 08:43:09 -05:00
COMMUNITY.md COMMUNITY.md: update CodingStyle & branching 2017-03-25 10:37:57 +01:00
configure.ac release: frr-3.0-rc0 2017-06-01 19:23:00 +02:00
COPYING *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
COPYING-LGPLv2.1 build: remove LGPL v2.0, add LGPL v2.1 2016-11-15 17:19:38 +09:00
defaults.h Rename: FreeRangeRouting FRRouting 2017-03-30 14:22:35 -04:00
Makefile.am Merge branch 'stable/2.0' 2017-04-04 19:01:47 +02:00
NEWS release: 0.99.24 2016-06-03 15:56:44 -04:00
README *: Clean up some wrong references 2017-04-04 20:18:24 -04:00
README.NetBSD build: remove $Format tags 2016-12-20 17:54:03 +01:00
render_md.py build: number sections in COMMUNITY.md HTML 2016-12-05 19:08:00 +01:00
REPORTING-BUGS Rename: freerangerouting --> frrouting 2017-03-30 14:24:05 -04:00
SERVICES nhrpd: implement next hop resolution protocol 2017-03-07 16:20:29 +01:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00
update-autotools * README.NetBSD: use update-autotools instead of autoreconf 2007-02-02 16:52:38 +00:00

FRRouting is free software that manages various IPv4 and IPv6 routing
protocols.

Currently FRRouting supports BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1,
RIPv2, RIPng, PIM-SM/MSDP and LDP as well as very early support for IS-IS.

See the file REPORTING-BUGS to report bugs.

Free RRRouting is free software. See the file COPYING for copying conditions.

Public email discussion can be found at https://lists.frrouting.org/listinfo

Our public slack channel is at https://frrouting.slack.com