From 75d044d234d1826db729f9ca580c966a028dbfc3 Mon Sep 17 00:00:00 2001 From: Christian Hammers Date: Mon, 12 Sep 2011 14:23:05 +0400 Subject: 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 --- ospf6d/ospf6_area.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'ospf6d/ospf6_area.c') diff --git a/ospf6d/ospf6_area.c b/ospf6d/ospf6_area.c index f4b327e4..7d8824d7 100644 --- a/ospf6d/ospf6_area.c +++ b/ospf6d/ospf6_area.c @@ -441,14 +441,14 @@ DEFUN (area_filter_list, argc--; argv++; - plist = prefix_list_lookup (AFI_IP6, argv[1]); - if (strncmp (argv[2], "in", 2) == 0) + plist = prefix_list_lookup (AFI_IP6, argv[0]); + if (strncmp (argv[1], "in", 2) == 0) { PREFIX_LIST_IN (area) = plist; if (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); } else @@ -457,7 +457,7 @@ DEFUN (area_filter_list, if (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); } @@ -483,11 +483,11 @@ DEFUN (no_area_filter_list, argc--; argv++; - plist = prefix_list_lookup (AFI_IP6, argv[1]); - if (strncmp (argv[2], "in", 2) == 0) + plist = prefix_list_lookup (AFI_IP6, argv[0]); + if (strncmp (argv[1], "in", 2) == 0) { 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; PREFIX_LIST_IN (area) = NULL; @@ -500,7 +500,7 @@ DEFUN (no_area_filter_list, else { 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; PREFIX_LIST_OUT (area) = NULL; -- cgit v1.2.1 From 5fdaa04e635fdef7deca9bdfe1be4b60ec90add6 Mon Sep 17 00:00:00 2001 From: Jon Andersson Date: Tue, 13 Sep 2011 15:47:14 +0400 Subject: ospf6d: add lost lines to area config block * ospf6_area.c * ospf6_area_config_write(): write filter-list, import-list and export-list lines --- ospf6d/ospf6_area.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'ospf6d/ospf6_area.c') diff --git a/ospf6d/ospf6_area.c b/ospf6d/ospf6_area.c index 7d8824d7..9934e6b9 100644 --- a/ospf6d/ospf6_area.c +++ b/ospf6d/ospf6_area.c @@ -420,6 +420,18 @@ ospf6_area_config_write (struct vty *vty) prefix2str (&range->prefix, buf, sizeof (buf)); vty_out (vty, " area %s range %s%s", oa->name, buf, VNL); } + if (PREFIX_NAME_IN (oa)) + vty_out (vty, " area %s filter-list prefix %s in%s", + oa->name, PREFIX_NAME_IN (oa), VNL); + if (PREFIX_NAME_OUT (oa)) + vty_out (vty, " area %s filter-list prefix %s out%s", + oa->name, PREFIX_NAME_OUT (oa), VNL); + if (IMPORT_NAME (oa)) + vty_out (vty, " area %s import-list %s%s", + oa->name, IMPORT_NAME (oa), VNL); + if (EXPORT_NAME (oa)) + vty_out (vty, " area %s export-list %s%s", + oa->name, EXPORT_NAME (oa), VNL); } } -- cgit v1.2.1