]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: Fix crash associated with aggregate command
authorDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 3 May 2017 02:14:24 +0000 (22:14 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 3 May 2017 02:34:29 +0000 (22:34 -0400)
The cli rework created this issue

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd/bgp_route.c

index 3e51831d18fa4521399289964818b43d29075491..3f4f1324f8c26d30c99fd7d117f3144eaecad3e6 100644 (file)
@@ -5860,9 +5860,8 @@ DEFUN (aggregate_address_mask,
 {
   int idx = 0;
   argv_find (argv, argc, "A.B.C.D", &idx);
-  char *prefix = argv[idx++]->arg;
-  argv_find (argv, argc, "A.B.C.D", &idx);
-  char *mask = argv[idx]->arg;
+  char *prefix = argv[idx]->arg;
+  char *mask = argv[idx+1]->arg;
   int as_set = argv_find (argv, argc, "as-set", &idx) ? AGGREGATE_AS_SET : 0;
   idx = 0;
   int summary_only = argv_find (argv, argc, "summary-only", &idx) ? AGGREGATE_SUMMARY_ONLY : 0;
@@ -5910,9 +5909,8 @@ DEFUN (no_aggregate_address_mask,
 {
   int idx = 0;
   argv_find (argv, argc, "A.B.C.D", &idx);
-  char *prefix = argv[idx++]->arg;
-  argv_find (argv, argc, "A.B.C.D", &idx);
-  char *mask = argv[idx]->arg;
+  char *prefix = argv[idx]->arg;
+  char *mask = argv[idx++]->arg;
 
   char prefix_str[BUFSIZ];
   int ret = netmask_str2prefix_str (prefix, mask, prefix_str);