diff --git a/SOURCES/radvd-no_dac_override.patch b/SOURCES/radvd-no_dac_override.patch new file mode 100644 index 00000000..be2b2c64 --- /dev/null +++ b/SOURCES/radvd-no_dac_override.patch @@ -0,0 +1,36 @@ +diff --git a/radvd.c b/radvd.c +index 07a64a1..9f86cf6 100644 +--- a/radvd.c ++++ b/radvd.c +@@ -346,6 +346,15 @@ int main(int argc, char *argv[]) + flog(LOG_WARNING, "IPv6 forwarding seems to be disabled, but continuing anyway"); + } + ++ if (username) { ++ if (drop_root_privileges(username) < 0) { ++ perror("drop_root_privileges"); ++ flog(LOG_ERR, "unable to drop root privileges"); ++ exit(1); ++ } ++ dlog(LOG_DEBUG, 3, "running as user: %s", username); ++ } ++ + int const pidfd = open_and_lock_pid_file(daemon_pid_file_ident); + + /* +@@ -421,15 +430,6 @@ int main(int argc, char *argv[]) + } + #endif + +- if (username) { +- if (drop_root_privileges(username) < 0) { +- perror("drop_root_privileges"); +- flog(LOG_ERR, "unable to drop root privileges"); +- exit(1); +- } +- dlog(LOG_DEBUG, 3, "running as user: %s", username); +- } +- + setup_ifaces(sock, ifaces); + ifaces = main_loop(sock, ifaces, conf_path); + stop_adverts(sock, ifaces); diff --git a/SOURCES/radvd-tmpfs.conf b/SOURCES/radvd-tmpfs.conf new file mode 100644 index 00000000..590652c4 --- /dev/null +++ b/SOURCES/radvd-tmpfs.conf @@ -0,0 +1 @@ +d /var/run/radvd 0755 radvd radvd diff --git a/SOURCES/radvd-werror.patch b/SOURCES/radvd-werror.patch new file mode 100644 index 00000000..b623868b --- /dev/null +++ b/SOURCES/radvd-werror.patch @@ -0,0 +1,35 @@ +From 6e45acbf3d64b9bd945adcb3de622fd7d059ceb9 Mon Sep 17 00:00:00 2001 +From: Pavel Zhukov +Date: Fri, 6 Apr 2018 15:04:02 +0200 +Subject: [PATCH] Drop unused variable + +Compillation with Werror=all is now successfull. +--- + gram.y | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/gram.y b/gram.y +index cc0dd4b..5db3bde 100644 +--- a/gram.y ++++ b/gram.y +@@ -408,7 +408,6 @@ v6addrlist_rasrcaddress : IPV6ADDR ';' + prefixdef : prefixhead optional_prefixplist ';' + { + if (prefix) { +- unsigned int dst; + + if (prefix->AdvPreferredLifetime > prefix->AdvValidLifetime) + { +diff --git a/send.c b/send.c +index 8bc16a8..62e3e68 100644 +--- a/send.c ++++ b/send.c +@@ -797,7 +797,7 @@ static int send_ra(int sock, struct Interface *iface, struct in6_addr const *des + } + + // RA built, now send it. +- dlog(LOG_DEBUG, 5, "sending RA to %s on %s (%s), %lu options (using %lu/%u bytes)", dest_text, iface->props.name, ++ dlog(LOG_DEBUG, 5, "sending RA to %s on %s (%s), %lu options (using %zd/%u bytes)", dest_text, iface->props.name, + src_text, option_count, sb->used, iface->props.max_ra_option_size); + int err = really_send(sock, dest, &iface->props, sb); + if (err < 0) { diff --git a/SOURCES/radvd.service b/SOURCES/radvd.service new file mode 100644 index 00000000..d1055015 --- /dev/null +++ b/SOURCES/radvd.service @@ -0,0 +1,13 @@ +[Unit] +Description=Router advertisement daemon for IPv6 +After=network.target + +[Service] +EnvironmentFile=/etc/sysconfig/radvd +ExecStart=/usr/sbin/radvd $OPTIONS +Type=forking +PIDFile=/var/run/radvd/radvd.pid +ExecReload=/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/SOURCES/radvd_add_ra_memleak.patch b/SOURCES/radvd_add_ra_memleak.patch new file mode 100644 index 00000000..5d4a8c4e --- /dev/null +++ b/SOURCES/radvd_add_ra_memleak.patch @@ -0,0 +1,25 @@ +From 5ad279f48c0f3d94573e3f3c887f86cd10476c2d Mon Sep 17 00:00:00 2001 +From: David Hallas +Date: Wed, 4 Apr 2018 06:36:12 +0200 +Subject: [PATCH] Fixes memory leak in add_ra_options_dnssl + +The add_ra_options_dnssl function failed to free memory before +returning. +--- + send.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/send.c b/send.c +index 0a4951a..4b83d57 100644 +--- a/send.c ++++ b/send.c +@@ -527,8 +527,8 @@ static struct safe_buffer_list *add_ra_options_dnssl(struct safe_buffer_list *sb + + dnssl = dnssl->next; + } +- return sbl; + safe_buffer_free(serialized_domains); ++ return sbl; + } + + /* diff --git a/SPECS/radvd.spec b/SPECS/radvd.spec new file mode 100644 index 00000000..d1b5c926 --- /dev/null +++ b/SPECS/radvd.spec @@ -0,0 +1,473 @@ +Summary: A Router Advertisement daemon +Name: radvd +Version: 2.17 +Release: 3%{?dist} +# The code includes the advertising clause, so it's GPL-incompatible +License: BSD with advertising +Group: System Environment/Daemons +URL: http://www.litech.org/radvd/ +Source0: %{url}dist/%{name}-%{version}.tar.xz +Source1: radvd-tmpfs.conf +Source2: radvd.service +Patch1: radvd-werror.patch +Patch2: radvd-no_dac_override.patch +## https://github.com/reubenhwk/radvd/commit/5ad279f48c0f3d94573e3f3c887f86cd10476c2d.patch +Patch3: radvd_add_ra_memleak.patch + +BuildRequires: bison +BuildRequires: flex +BuildRequires: flex-static +BuildRequires: pkgconfig +%if 0%{?fedora} +BuildRequires: check-devel +%endif +BuildRequires: systemd-units +%{?systemd_requires} +Requires(pre): shadow-utils + +%description +radvd is the router advertisement daemon for IPv6. It listens to router +solicitations and sends router advertisements as described in "Neighbor +Discovery for IP Version 6 (IPv6)" (RFC 2461). With these advertisements +hosts can automatically configure their addresses and some other +parameters. They also can choose a default router based on these +advertisements. + +Install radvd if you are setting up IPv6 network and/or Mobile IPv6 +services. + +%prep +%setup -q +%patch1 -p1 -b .werror +%patch2 -p1 -b .dac +%patch3 -p1 -b .add_ra_memleak + +for F in CHANGES; do + iconv -f iso-8859-1 -t utf-8 < "$F" > "${F}.new" + touch -r "$F" "${F}.new" + mv "${F}.new" "$F" +done + +%build +export NOERRORFLAGS="${CFLAGS}" +export CFLAGS="$RPM_OPT_FLAGS -fPIE -Werror=all -std=c99" +export LDFLAGS='-pie -Wl,-z,relro,-z,now,-z,noexecstack,-z,nodlopen' +%configure \ + --disable-silent-rules \ + --with-pidfile=%{_localstatedir}/run/radvd/radvd.pid +make %{?_smp_mflags} + +%install +make DESTDIR=%{buildroot} install + +mkdir -p %{buildroot}%{_sysconfdir}/sysconfig +mkdir -p %{buildroot}/%{_localstatedir}/run/radvd +mkdir -p %{buildroot}%{_unitdir} + +install -m 644 redhat/radvd.conf.empty %{buildroot}%{_sysconfdir}/radvd.conf +install -m 644 redhat/radvd.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/radvd + +install -d -m 755 %{buildroot}%{_tmpfilesdir} +install -p -m 644 %{SOURCE1} %{buildroot}%{_tmpfilesdir}/radvd.conf +install -m 644 %{SOURCE2} %{buildroot}%{_unitdir} + +## RHEL7 has old check +%if 0%{?fedora} +%check +make check +%endif + +%postun +%systemd_postun_with_restart radvd.service + +%post +%systemd_post radvd.service + +%preun +%systemd_preun radvd.service + +# Static UID and GID defined by /usr/share/doc/setup-*/uidgid +%pre +getent group radvd >/dev/null || groupadd -r -g 75 radvd +getent passwd radvd >/dev/null || \ + useradd -r -u 75 -g radvd -d / -s /sbin/nologin -c "radvd user" radvd +exit 0 + +%files +%doc CHANGES COPYRIGHT INTRO.html README TODO +%{_unitdir}/radvd.service +%config(noreplace) %{_sysconfdir}/radvd.conf +%config(noreplace) %{_sysconfdir}/sysconfig/radvd +%dir %attr(-,radvd,radvd) %{_localstatedir}/run/radvd/ +%config(noreplace) %{_tmpfilesdir}/radvd.conf +%doc radvd.conf.example +%{_mandir}/*/* +%{_sbindir}/radvd +%{_sbindir}/radvdump + +%changelog +* Mon Jun 4 2018 Pavel Zhukov - 2.17-3 +- Related: #1475983 - Use /var/run instead of /run in EL7 +- Fix coverity reported errors + +* Mon Jun 4 2018 Pavel Zhukov - 2.17-1 +- Resolves: #1475983 - Rebase on 2.17 + +* Thu Apr 12 2018 Pavel Zhukov - 1.9.2-14 +- Check pid file before running main flow +- Enable -Werror=all flag + +* Wed Apr 11 2018 Pavel Zhukov - 1.9.2-13 +- Related: 1559160 - Backport file locking and pidfile removal + +* Thu Mar 22 2018 Pavel Zhukov - 1.9.2-12 +- Resolves: 1559160 - Write pid file in nodaemon mode +- Fix coverity warnings + +* Mon Aug 17 2015 Pavel Šimerda - 1.9.2-9 +- Related: #1180991 - rebuilt + +* Thu Apr 16 2015 Pavel Šimerda - 1.9.2-8 +- Resolves: #1180991 - use /usr/lib/tmpfiles.d instead of /etc/tmpfiles.d + +* Fri Jan 24 2014 Daniel Mach - 1.9.2-7 +- Mass rebuild 2014-01-24 + +* Thu Jan 02 2014 Pavel Šimerda - 1.9.2-6 +- Resolves: #1045179 - use -fno-strict-aliasing for radvd + +* Fri Dec 27 2013 Daniel Mach - 1.9.2-5 +- Mass rebuild 2013-12-27 + +* Tue Dec 10 2013 Pavel Šimerda - 1.9.2-4 +- Resolves: #948863 - man page scan results for radvd + +* Thu Feb 14 2013 Fedora Release Engineering - 1.9.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Dec 05 2012 Petr Pisar - 1.9.2-2 +- Create radvd user and and group with ID 75 + +* Wed Nov 21 2012 Petr Pisar - 1.9.2-1 +- 1.9.2 bump + +* Wed Aug 22 2012 Petr Pisar - 1.9.1-4 +- Modernize systemd scriptlets (bug #850292) + +* Tue Aug 07 2012 Petr Pisar - 1.9.1-3 +- Remove useless chkconfig invocation (bug #845562) +- Do not reload unit file while unistalling + +* Sat Jul 21 2012 Fedora Release Engineering - 1.9.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Jun 20 2012 Petr Pisar - 1.9.1-1 +- 1.9.1 bump + +* Fri Jun 15 2012 Petr Pisar - 1.9-2 +- Drop already defined _GNU_SOURCE symbol + +* Fri Jun 15 2012 Petr Pisar - 1.9-1 +- 1.9 bump + +* Wed May 23 2012 Petr Pisar - 1.8.5-4 +- Start service independently on network state (bug #824205) +- Do not force systemd logging to syslog (bug #824205) + +* Thu Apr 12 2012 Petr Pisar - 1.8.5-3 +- Store PID before daemonizing (bug #811997) + +* Tue Apr 03 2012 Petr Pisar - 1.8.5-2 +- Clean up spec file +- Remove System V init support +- Fix radvd account creation + +* Wed Feb 01 2012 Jiri Skala - 1.8.5-1 +- update to latest upstream version 1.8.5 + +* Mon Jan 23 2012 Jiri Skala - 1.8.4-1 +- update to latest upstream version 1.8.4 + +* Sat Jan 14 2012 Fedora Release Engineering - 1.8.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Oct 17 2011 Jiri Skala - 1.8.3-1 +- update to latest upstream version 1.8.3 + +* Mon Oct 10 2011 Jiri Skala - 1.8.2-2 +- fixes CVE-2011-3602 + +* Fri Oct 07 2011 Jiri Skala - 1.8.2-1 +- update to latest upstream version 1.8.2 +- this update fixes CVE-2011-360{1..5} + +* Wed Aug 24 2011 Jiri Skala - 1.8.1-1 +- update to latest upstream version 1.8.1 + +* Fri Aug 12 2011 Jiri Skala - 1.8-2 +- fixes #729367 - supress unadvisable messages - applied upstream changes + +* Tue May 17 2011 Jiri Skala - 1.8-1 +- update to latest upstream version 1.8 + +* Mon Feb 28 2011 Jiri Skala - 1.7-3 +- fixes #679830 - radvd dies when reloading, initscript reports "OK" + +* Wed Feb 23 2011 Jiri Skala - 1.7-2 +- fixes #679821 - provides native systemd service file + +* Wed Feb 09 2011 Jiri Skala - 1.7-1 +- update to latest upstream version 1.7 + +* Wed Feb 09 2011 Fedora Release Engineering - 1.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Dec 01 2010 Jiri Skala - 1.6-4 +- #656682 - using tmpfiles.d + +* Wed Dec 01 2010 Jiri Skala - 1.6-3 +- fixes #656682 - using %%ghost on files in /var/run +- added necessary buildrequres flex-static + +* Fri May 21 2010 Jiri Skala - 1.6-2 +- ensure fax group id == fax user id + +* Mon Mar 29 2010 Jiri Skala - 1.6-1 +- update to latest upstream version + +* Mon Jan 25 2010 Jiri Skala - 1.5-3 +- spec file uses Source1 for radvd.init no more init from tarball +- radvd.init modified to make rmplint more silent +- removed userdel usage from postun + +* Wed Jan 13 2010 Jan Gorig - 1.5-2 +- mistake in last build + +* Wed Jan 13 2010 Jan Gorig - 1.5-1 +- updated do latest upstream version +- fixed #554125 - added error message + +* Sun Oct 18 2009 Jiri Skala - 1.3-4 +- fixed #528178 - added force-reload + +* Sun Oct 18 2009 Jiri Skala - 1.3-3 +- fixed #528178 - retval in init script to be posix compliant + +* Sun Jul 26 2009 Fedora Release Engineering - 1.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Fri Jul 10 2009 Jiri Skala - 1.3-1 +- updated to latest upstream version + +* Wed Jun 03 2009 Jiri Skala - 1.2-3 +- changed echos to be able to accept localization + +* Tue Apr 28 2009 Jiri Skala - 1.2-2 +- fixed ambiguous condition in init script (exit 4) + +* Mon Apr 27 2009 Jiri Skala - 1.2-1 +- updated to latest upstream version + +* Fri Feb 27 2009 Jiri Skala - 1.1-8 +- regenerated posix patch + +* Wed Feb 25 2009 Fedora Release Engineering - 1.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Feb 02 2009 Jiri Skala - 1.1-6 +- init script modified to be POSIX compliant + +* Wed Sep 3 2008 Tom "spot" Callaway - 1.1-5 +- fix license tag + +* Mon Jun 23 2008 Jiri Skala - 1.1-4 +- radvd.init LSB compliant + +* Fri Apr 11 2008 Martin Nagy - 1.1-3 +- remove stale pid file on start + +* Mon Feb 25 2008 Martin Nagy - 1.1-2 +- fix up string comparison in init script (#427047) + +* Mon Feb 25 2008 Martin Nagy - 1.1-1 +- update to new upstream version +- remove patch fixed in upstream: initscript + +* Mon Feb 11 2008 Martin Nagy - 1.0-6 +- rebuild for gcc-4.3 + +* Tue Nov 13 2007 Martin Bacovsky - 1.0-5 +- resolves #376081: The radvd init script exits without doing anything if /usr/sbin/radvd exists + +* Thu Aug 23 2007 Martin Bacovsky - 1.0-4.1 +- Rebuild + +* Fri Aug 3 2007 Martin Bacovsky - 1.0-4 +- resolves: #247041: Initscript Review + +* Wed Feb 14 2007 Martin Bacovsky - 1.0-3 +- specfile cleanup for review + +* Thu Feb 1 2007 Martin Bacovsky - 1.0-2 +- linking with -pie flag turned on again + +* Wed Jan 31 2007 Martin Bacovsky - 1.0-1 +- rebase to upstream 1.0 +- Resolves: #225542: radvd 1.0 released + +* Fri Aug 18 2006 Jesse Keating - 0.9.1-4 +- rebuilt with latest binutils to pick up 64K -z commonpagesize on ppc* + (#203001) + +* Mon Jul 17 2006 Jason Vas Dias - 0.9.1-3 +- rebuild for new FC-6 build environment + +* Mon Jun 05 2006 Jason Vas Dias - 0.9.1-2 +- fix BuildRequires for Mock + +* Fri Feb 10 2006 Jesse Keating - 0.9.1-1.1.1 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jason Vas Dias - 0.9.1-1.1 +- rebuild for new gcc, glibc, glibc-kernheaders + +* Mon Jan 16 2006 Jason Vas Dias - 0.9.1-1 +- Upgrade to upstream version 0.9.1 + +* Sun Dec 18 2005 Jason Vas Dias +- Upgrade to upstream version 0.9 + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Tue Jul 19 2005 Jason Vas Dias 0.8.2.FC5 +- fix bug 163593: must use '%%configure' to get correct conf file location + +* Mon Jul 18 2005 Jason Vas Dias 0.8-1.FC5 +- Upgrade to upstream version 0.8 + +* Fri Jul 8 2005 Pekka Savola 0.8-1 +- 0.8. +- Ship the example config file as %%doc (Red Hat's #159005) + +* Fri Feb 25 2005 Jason Vas Dias 0.7.3-1_FC4 +- make version compare > that of FC3 + +* Mon Feb 21 2005 Jason Vas Dias 0.7.3-1 +- Upgrade to radvd-0.7.3 +- add execshield -fPIE / -pie compile / link options + +* Mon Feb 21 2005 Pekka Savola 0.7.3-1 +- 0.7.3. + +* Mon Oct 28 2002 Pekka Savola +- 0.7.2. + +* Tue May 7 2002 Pekka Savola +- remove '-g %%{RADVD_GID}' when creating the user, which may be problematic + if the user didn't exist before. + +* Fri Apr 12 2002 Bernhard Rosenkraenzer 0.7.1-1 +- 0.7.1 (bugfix release, #61023), fixes: + - Check that forwarding is enabled when starting radvd + (helps avoid odd problems) + - Check configuration file permissions (note: in setuid operation, must not + be writable by the user.group) + - Cleanups and enhancements for radvdump + - Ensure NULL-termination with strncpy even with overlong strings + (non-criticals, but better safe than sorry) + - Update config.{guess,sub} to cope with some newer architectures + - Minor fixes and cleanups + +* Mon Jan 14 2002 Pekka Savola +- 0.7.1. + +* Wed Jan 09 2002 Tim Powers +- automated rebuild + +* Tue Jan 8 2002 Pekka Savola +- Change 'reload' to signal HUP to radvd instead or restarting. + +* Fri Dec 28 2001 Pekka Savola +- License unfortunately is BSD *with* advertising clause, so to be pedantic, + change License: to 'BSD-style'. + +* Thu Nov 22 2001 Bernhard Rosenkraenzer +- 0.7.0 + +* Wed Nov 14 2001 Pekka Savola +- spec file cleanups +- update to 0.7.0. + +* Mon Jul 9 2001 Bernhard Rosenkraenzer +- initial Red Hat Linux build + +* Sun Jun 24 2001 Pekka Savola +- add a patch from USAGI for overflow, Copyright -> License. + +* Wed Jun 20 2001 Pekka Savola +- use /sbin/service. +- update to 0.6.2pl4. + +* Sat Apr 28 2001 Pekka Savola +- update to 0.6.2pl3. + +* Wed Apr 11 2001 Pekka Savola +- update to 0.6.2pl2. + +* Wed Apr 4 2001 Pekka Savola +- update to 0.62pl1. Bye bye patches! +- Require: initscripts (should really be with a version providing IPv6) +- clean up the init script, make condrestart work properly +- Use a static /etc/rc.d/init.d; init.d/radvd required it anyway. + +* Sun Apr 1 2001 Pekka Savola +- add patch to chroot (doesn't work well yet, as /proc is used directly) +- clean up droproot patch, drop the rights earlier; require user-writable +pidfile directory +- set up the pidfile directory at compile time. + +* Sat Mar 31 2001 Pekka Savola +- add select/kill signals patch from Nathan Lutchansky . +- add address syntax checked fix from Marko Myllynen . +- add patch to check the pid file before fork. +- add support for OPTIONS sourced from /etc/sysconfig/radvd, provide a nice +default one. +- add/delete radvd user, change the pidfile to /var/run/radvd/radvd.pid. +- fix initscript NETWORKING_IPV6 check. + +* Sun Mar 18 2001 Pekka Savola +- add droproot patch, change to nobody by default (should use radvd:radvd or +the like, really). + +* Mon Mar 5 2001 Tim Powers +- applied patch supplied by Pekka Savola in #30508 +- made changes to initscript as per Pekka's suggestions + +* Thu Feb 15 2001 Tim Powers +- needed -D_GNU_SOURCE to build properly + +* Tue Feb 6 2001 Tim Powers +- use %%configure and %%makeinstall, just glob the manpages, cleans + things up +- fixed initscript so that it can be internationalized in the future + +* Fri Feb 2 2001 Pekka Savola +- Create a single package(source) for glibc21 and glibc22 (automatic +Requires can handle this just fine). +- use %%{_mandir} and friends +- add more flesh to %%doc +- streamline %%config file %%attrs +- streamline init.d file a bit: + * add a default chkconfig: (default to disable for security etc. reasons; + also, the default config isn't generic enough..) + * add reload/condrestart + * minor tweaks + * missing: localization support (initscripts-5.60) +- use %%initdir macro + +* Thu Feb 1 2001 Lars Fenneberg +- updated to new release 0.6.2 + +* Thu Feb 1 2001 Marko Myllynen +- initial version, radvd version 0.6.1