mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 23:21:10 +00:00
ospf6d: fix crash on filter-list handling (BZ#530)
This essentially merges the fix available from Debian build of Quagga. * ospf6_area.c * area_filter_list(): use correct argv indices * no_area_filter_list(): idem
This commit is contained in:
parent
2b43bf231c
commit
75d044d234
@ -441,14 +441,14 @@ DEFUN (area_filter_list,
|
|||||||
argc--;
|
argc--;
|
||||||
argv++;
|
argv++;
|
||||||
|
|
||||||
plist = prefix_list_lookup (AFI_IP6, argv[1]);
|
plist = prefix_list_lookup (AFI_IP6, argv[0]);
|
||||||
if (strncmp (argv[2], "in", 2) == 0)
|
if (strncmp (argv[1], "in", 2) == 0)
|
||||||
{
|
{
|
||||||
PREFIX_LIST_IN (area) = plist;
|
PREFIX_LIST_IN (area) = plist;
|
||||||
if (PREFIX_NAME_IN (area))
|
if (PREFIX_NAME_IN (area))
|
||||||
free (PREFIX_NAME_IN (area));
|
free (PREFIX_NAME_IN (area));
|
||||||
|
|
||||||
PREFIX_NAME_IN (area) = strdup (argv[1]);
|
PREFIX_NAME_IN (area) = strdup (argv[0]);
|
||||||
ospf6_abr_reimport (area);
|
ospf6_abr_reimport (area);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -457,7 +457,7 @@ DEFUN (area_filter_list,
|
|||||||
if (PREFIX_NAME_OUT (area))
|
if (PREFIX_NAME_OUT (area))
|
||||||
free (PREFIX_NAME_OUT (area));
|
free (PREFIX_NAME_OUT (area));
|
||||||
|
|
||||||
PREFIX_NAME_OUT (area) = strdup (argv[1]);
|
PREFIX_NAME_OUT (area) = strdup (argv[0]);
|
||||||
ospf6_abr_enable_area (area);
|
ospf6_abr_enable_area (area);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -483,11 +483,11 @@ DEFUN (no_area_filter_list,
|
|||||||
argc--;
|
argc--;
|
||||||
argv++;
|
argv++;
|
||||||
|
|
||||||
plist = prefix_list_lookup (AFI_IP6, argv[1]);
|
plist = prefix_list_lookup (AFI_IP6, argv[0]);
|
||||||
if (strncmp (argv[2], "in", 2) == 0)
|
if (strncmp (argv[1], "in", 2) == 0)
|
||||||
{
|
{
|
||||||
if (PREFIX_NAME_IN (area))
|
if (PREFIX_NAME_IN (area))
|
||||||
if (strcmp (PREFIX_NAME_IN (area), argv[1]) != 0)
|
if (strcmp (PREFIX_NAME_IN (area), argv[0]) != 0)
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
|
|
||||||
PREFIX_LIST_IN (area) = NULL;
|
PREFIX_LIST_IN (area) = NULL;
|
||||||
@ -500,7 +500,7 @@ DEFUN (no_area_filter_list,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (PREFIX_NAME_OUT (area))
|
if (PREFIX_NAME_OUT (area))
|
||||||
if (strcmp (PREFIX_NAME_OUT (area), argv[1]) != 0)
|
if (strcmp (PREFIX_NAME_OUT (area), argv[0]) != 0)
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
|
|
||||||
PREFIX_LIST_OUT (area) = NULL;
|
PREFIX_LIST_OUT (area) = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user