frr/pimd
Rafael Zalamena cacdff75a6 pimd: fix null memory access on IGMP source limit
When the IGMP group source limit is reached the function
`igmp_get_source_by_addr` won't return a `struct gm_source` so we must
test for that condition before attempting to access its fields.

Fixes coverity scan issue 1637406.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2025-02-28 11:34:36 -03:00
..
.gitignore pim6d: add skeleton for IPv6 PIM daemon 2022-01-12 18:23:50 +01:00
AUTHORS
CAVEATS pimd: added mtrace caveat 2018-02-27 14:03:39 +01:00
COMMANDS pimd: show ip igmp statistics command 2018-05-04 17:05:19 +02:00
DEBUG pimd: Cleanup the headers. 2017-01-19 10:01:02 -05:00
LINUX_KERNEL_MROUTE_MFC
Makefile build: non-recursive pimd 2017-09-07 16:20:42 +02:00
mtracebis.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
mtracebis_netlink.c *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
mtracebis_netlink.h *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
mtracebis_routeget.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
mtracebis_routeget.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim6_cmd.c pimd: allow restricting neighbors per interface 2025-02-19 09:49:06 -03:00
pim6_cmd.h pim6d: support embedded-rp 2024-11-13 12:05:35 -03:00
pim6_main.c pimd: Candidate-RP support 2024-09-09 12:42:28 -05:00
pim6_mld.c pimd,topotests: frrbot styling suggestions 2025-02-13 13:07:34 -03:00
pim6_mld.h pim6d: implement MLD source/group limits 2025-02-10 15:40:07 -03:00
pim6_mld_protocol.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_addr.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_addr.h pimd, lib, vtysh: Added new 'router pim[6] [vrf NAME]' config node 2024-07-16 13:30:35 -05:00
pim_assert.c *: Convert THREAD_XXX macros to EVENT_XXX macros 2023-03-24 08:32:17 -04:00
pim_assert.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_autorp.c Merge pull request #18226 from nabahr/pim-vrf-bind 2025-02-24 13:53:39 -05:00
pim_autorp.h pim: Fix vrf binding of autorp and mroute socket 2025-02-21 19:32:40 +00:00
pim_bfd.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_bfd.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_bsm.c Merge pull request #17850 from Jafaral/wr-rpg 2025-01-14 12:41:15 -05:00
pim_bsm.h pimd: Implement autorp mapping agent CLI 2024-11-19 22:33:11 +00:00
pim_bsr_rpdb.c pimd: Implement rpf lookup mode as a list 2025-01-09 21:58:22 +00:00
pim_cmd.c pimd: allow restricting neighbors per interface 2025-02-19 09:49:06 -03:00
pim_cmd.h pimd,yang: Implement AutoRP CLI and NB config path 2024-09-24 16:39:17 +00:00
pim_cmd_common.c pimd: Close AutoRP socket when not needed 2025-01-27 17:04:14 +00:00
pim_cmd_common.h pimd: Implement autorp mapping agent CLI 2024-11-19 22:33:11 +00:00
pim_errors.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_errors.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_hello.c *: convert struct interface->connected to DLIST 2023-11-22 23:00:30 +01:00
pim_hello.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_iface.c pim: Fix autorp group joins 2025-02-21 21:38:32 +00:00
pim_iface.h pimd: allow restricting neighbors per interface 2025-02-19 09:49:06 -03:00
pim_ifchannel.c pimd: Fix for FHR mroute taking longer to age out 2025-02-06 10:19:46 -06:00
pim_ifchannel.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
pim_igmp.c pim6d: implement MLD source/group limits 2025-02-10 15:40:07 -03:00
pim_igmp.h pimd: add proxy join/prune functionality 2024-09-23 11:43:32 -07:00
pim_igmp_join.h pim6d: Impelmenting "ipv6 mld join" 2023-04-03 04:05:17 -07:00
pim_igmp_mtrace.c pimd: Implement rpf lookup mode as a list 2025-01-09 21:58:22 +00:00
pim_igmp_mtrace.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_igmp_stats.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_igmp_stats.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_igmpv2.c pimd,yang: Extend multicast boundary functionality 2024-12-06 14:44:17 -06:00
pim_igmpv2.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_igmpv3.c pimd: fix null memory access on IGMP source limit 2025-02-28 11:34:36 -03:00
pim_igmpv3.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_instance.c Merge pull request #18216 from gromit1811/bugfix_pim_vrf_register 2025-02-24 12:56:08 -06:00
pim_instance.h pimd: Implement rpf lookup mode as a list 2025-01-09 21:58:22 +00:00
pim_int.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_int.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_join.c pimd,yang: Extend multicast boundary functionality 2024-12-06 14:44:17 -06:00
pim_join.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_jp_agg.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_jp_agg.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_macro.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_macro.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_main.c pimd: Candidate-RP support 2024-09-09 12:42:28 -05:00
pim_memory.c pimd: fix memory leak and assign allocation type 2025-02-06 10:17:19 -03:00
pim_memory.h pimd: fix memory leak and assign allocation type 2025-02-06 10:17:19 -03:00
pim_mlag.c *: Let's use the native IFNAMSIZ instead of INTERFACE_NAMSIZ 2023-11-21 08:08:29 -05:00
pim_mlag.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_mroute.c pim: Fix vrf binding of autorp and mroute socket 2025-02-21 19:32:40 +00:00
pim_mroute.h pimd: Cleanup inclusion of headers 2024-03-08 18:04:34 +00:00
pim_msdp.c pimd: fix memory leak and assign allocation type 2025-02-06 10:17:19 -03:00
pim_msdp.h pimd: support originator id configuration 2024-12-12 10:34:19 -03:00
pim_msdp_packet.c pimd: support originator id configuration 2024-12-12 10:34:19 -03:00
pim_msdp_packet.h pimd: MSDP SA filtering 2024-07-27 11:32:30 -03:00
pim_msdp_socket.c pimd: remove temporary variables from MSDP peer 2024-11-20 12:06:00 -03:00
pim_msdp_socket.h pimd: add support for MSDP authentication 2024-07-29 11:40:53 -03:00
pim_msg.c pimd: Re-align pim_msg_get_jp_group_size 2024-01-12 15:04:59 -05:00
pim_msg.h pimd: Candidate-BSR support 2024-09-09 13:27:49 -05:00
pim_nb.c pimd: allow restricting neighbors per interface 2025-02-19 09:49:06 -03:00
pim_nb.h pimd: allow restricting neighbors per interface 2025-02-19 09:49:06 -03:00
pim_nb_config.c pimd: allow restricting neighbors per interface 2025-02-19 09:49:06 -03:00
pim_neighbor.c Merge pull request #13020 from SaiGomathiN/2462808-3 2023-05-02 11:55:34 -04:00
pim_neighbor.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
pim_nht.c pimd: Implement rpf lookup mode as a list 2025-01-09 21:58:22 +00:00
pim_nht.h pimd: Implement rpf lookup mode as a list 2025-01-09 21:58:22 +00:00
pim_oil.c pimd: Use a better name for oil_parent 2023-09-19 13:03:50 -04:00
pim_oil.h pimd: Use a better name for oil_parent 2023-09-19 13:03:50 -04:00
pim_pim.c pimd: allow restricting neighbors per interface 2025-02-19 09:49:06 -03:00
pim_pim.h pimd: refactor pim_sock_read to be used with unicast bsr msgs 2024-09-09 13:27:49 -05:00
pim_register.c pimd: Fix for data packet loss when FHR is LHR and RP 2025-02-11 09:52:15 -08:00
pim_register.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_routemap.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_rp.c pim: handle return code to fix a couple of coverity issues 2024-12-18 21:52:48 -06:00
pim_rp.h pimd: Refactor pim NHT 2024-12-13 17:36:34 +00:00
pim_rpf.c pimd: Refactor pim NHT 2024-12-13 17:36:34 +00:00
pim_rpf.h pimd: Refactor pim NHT 2024-12-13 17:36:34 +00:00
pim_signals.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_signals.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_sock.c pimd: Add AutoRP functionality to PIMD 2024-09-24 16:36:53 +00:00
pim_sock.h pimd: Add AutoRP functionality to PIMD 2024-09-24 16:36:53 +00:00
pim_ssm.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_ssm.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_ssmpingd.c pimd: remove redundant closing socket 2023-09-23 21:06:32 +08:00
pim_ssmpingd.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
pim_static.c pimd: Use a better name for oil_parent 2023-09-19 13:03:50 -04:00
pim_static.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_str.h pimd: Remove pim_addr_dump 2023-07-21 07:29:26 -04:00
pim_tib.c pim: handle return code to fix a couple of coverity issues 2024-12-18 21:52:48 -06:00
pim_tib.h pimd: add proxy join/prune functionality 2024-09-23 11:43:32 -07:00
pim_time.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
pim_time.h *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
pim_tlv.c pimd: Candidate-BSR support 2024-09-09 13:27:49 -05:00
pim_tlv.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_upstream.c Merge pull request #17666 from routingrocks/pim_fhr_rp 2025-02-20 13:41:10 -05:00
pim_upstream.h pimd: move all MSDP code to its own place 2024-12-11 11:58:25 -03:00
pim_util.c pimd,pim6d: optimize multicast prefix generation 2024-12-13 08:28:42 -03:00
pim_util.h pimd,pim6d: optimize multicast prefix generation 2024-12-13 08:28:42 -03:00
pim_vty.c pimd: allow restricting neighbors per interface 2025-02-19 09:49:06 -03:00
pim_vty.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_vxlan.c pimd: Refactor pim NHT 2024-12-13 17:36:34 +00:00
pim_vxlan.h pimd: Send up to 10 NULL registers on vxlan startup 2024-01-10 15:36:47 -05:00
pim_vxlan_instance.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_zebra.c pimd: skip init of mlag roles based on the zebra capabilities message 2024-12-09 12:31:29 -05:00
pim_zebra.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pim_zlookup.c pimd: Implement rpf lookup mode as a list 2025-01-09 21:58:22 +00:00
pim_zlookup.h pimd: Implement rpf lookup mode as a list 2025-01-09 21:58:22 +00:00
pim_zpthread.c *: Convert thread_add_XXX functions to event_add_XXX 2023-03-24 08:32:17 -04:00
pimd.c pimd: Fix access-list memory leak in pimd 2024-11-26 10:47:46 -06:00
pimd.h pimd: Add AutoRP functionality to PIMD 2024-09-24 16:36:53 +00:00
README pimd: fix frr url 2020-03-29 17:19:37 -04:00
subdir.am pimd: Add AutoRP functionality to PIMD 2024-09-24 16:36:53 +00:00
test_igmpv3_join.c pim6d: Impelmenting "ipv6 mld join" 2023-04-03 04:05:17 -07:00
TODO pimd: Cleanup TODO file 2018-02-26 21:33:02 -05:00
TROUBLESHOOTING

INTRODUCTION

        qpimd aims to implement a PIM (Protocol Independent Multicast)
	daemon for the FRR Routing Suite.

	qpimd implements PIM-SM (Sparse Mode) of RFC 4601.
        Additionally MSDP has been implemented.

	In order to deliver end-to-end multicast routing control
	plane, qpimd includes the router-side of IGMPv[2|3] (RFC 3376).

LICENSE

        qpimd - pimd for FRR
        Copyright (C) 2008 Everton da Silva Marques

        qpimd 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,
        or (at your option) any later version.

        qpimd 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 qpimd; see the file COPYING.  If not, write
        to the Free Software Foundation, Inc., 59 Temple Place - Suite
        330, Boston, MA 02111-1307, USA.

HOME SITE

        qpimd lives at:

        https://github.com/frrouting/frr

PLATFORMS

	qpimd has been tested with Debian Jessie.

REQUIREMENTS

	qpimd requires FRR (2.0 or higher)


CONFIGURATION COMMANDS

	See available commands in the file pimd/COMMANDS.

KNOWN CAVEATS

	See list of known caveats in the file pimd/CAVEATS.

SUPPORT

	Please post comments, questions, patches, bug reports at the
	support site:

        https://frrouting.org/frr

RELATED WORK

	igmprt:	An IGMPv3-router implementation
	- http://www.loria.fr/~lahmadi/igmpv3-router.html

	USC pimd: PIMv2-SM daemon
	- http://netweb.usc.edu/pim/pimd (URL broken in 2008-12-23)
	- http://packages.debian.org/source/sid/pimd (from Debian)

	troglobit pimd: This is the original USC pimd from
	http://netweb.usc.edu/pim/. In January 16, 2010 it was revived
	with the intention to collect patches floating around in
	Debian, Gentoo, Lintrack and other distribution repositories
	and to provide a central point of collaboration.
	- http://github.com/troglobit/pimd

	zpimd: zpimd is not dependent of zebra or any other routing daemon
	- ftp://robur.slu.se/pub/Routing/Zebra
	- http://sunsite2.icm.edu.pl/pub/unix/routing/zpimd

	mrd6: an IPv6 Multicast Router for Linux systems
	- http://fivebits.net/proj/mrd6/

	MBGP: Implementation of RFC 2858 for Quagga
	- git://git.coplanar.net/~balajig/quagga
	- http://www.gossamer-threads.com/lists/quagga/dev/18000

REFERENCES

	IANA Protocol Independent Multicast (PIM) Parameters
	http://www.iana.org/assignments/pim-parameters/pim-parameters.txt

	Address Family Numbers
	http://www.iana.org/assignments/address-family-numbers

                              -- END --