summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * | zebra: add missing includesDenis Ovsienko2011-09-272-0/+5
| | |
| * | ospf6d: address more trivial compiler warningsDenis Ovsienko2011-09-273-2/+13
| | | | | | | | | | | | | | | | | | | | | * ospf6_main.c: include required headers * ospf6_asbr.h: idem * ospf6_spf.c * ospf6_spf_install(): remove unused variables
| * | ospfd: sizing macros cleanupDenis Ovsienko2011-09-272-10/+8
| | | | | | | | | | | | | | | | | | * ospf_spf.c * ROUTER_LSA_TOS_SIZE: prepend OSPF_ and move to ospf_lsa.h * ROUTER_LSA_MIN_SIZE: replace with existing OSPF_ROUTER_LSA_LINK_SIZE
| * | lib: use "protocol-independed API" from RFC3678, if that is availableDmitrij Tejblum2011-09-272-4/+31
| | | | | | | | | | | | | | | | | | | | | | | | (This commit is based on the patch from BZ#420, and should fix that bug.) * configure.ac: detect availability of that API * sockopt.c (setsockopt_ipv4_multicast): use it for join/leave IPv4 multicast groups
| * | lib: futher simplification of setsockopt_ipv4_multicast()Dmitrij Tejblum2011-09-271-64/+44
| | | | | | | | | | | | | | | * sockopt.c (setsockopt_ipv4_multicast): check for wrong optname with assert(), rather than return an error.
| * | lib: fix omission in the previous commit to lib/sockopt.cDmitrij Tejblum2011-09-271-0/+1
| | | | | | | | | | | | | | | * sockopt.c (setsockopt_ipv4_multicast_if): fix missed line in the previous commit.
| * | lib: simplify interface of setsockopt_multicast_ipv4().Dmitrij Tejblum2011-09-274-60/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * sockopt.[ch] (setsockopt_ipv4_multicast): ifindex is now mandatory (all non-ancient OSes can use it anyway), and if_addr parameter (the address of the interface) is now gone. (setsockopt_ipv4_multicast_if): IP_MULTICAST_IF processing moved to this new function * ospf_network.c (ospf_if_add_allspfrouters, ospf_if_drop_allspfrouters, ospf_if_add_alldrouters, ospf_if_drop_alldrouters, ospf_if_ipmulticast), rip_interface.c (ipv4_multicast_join, ipv4_multicast_leave, rip_interface_new): adapt to the new interface
| * | ospf6d: spellingDenis Ovsienko2011-09-272-12/+12
| | |
| * | lib: remove unused variableDenis Ovsienko2011-09-271-3/+1
| | | | | | | | | | | | * sockopt.c (getsockopt_ifindex): "ifindex" was never used
| * | delete CVS keywordsDenis Ovsienko2011-09-2712-23/+0
| | |
| * | configure: fix OpenPAM detectionDenis Ovsienko2011-09-271-1/+8
| | |
| * | bgpd: check ATOMIC_AGGREGATE attr flags (BZ#678)Denis Ovsienko2011-09-271-2/+38
| | | | | | | | | | | | | | | | | | | | | | | | * bgp_attr.c * bgp_attr_atomic(): accept extra argument, add checks for "optional", "transitive" and "partial" bits, log each error condition independently * bgp_attr_parse(): provide extra argument
| * | bgpd: check MULTI_EXIT_DISC attr flags (BZ#677)Denis Ovsienko2011-09-271-0/+32
| | | | | | | | | | | | | | | | | | * bgp_attr.c * bgp_attr_med(): add checks for "optional", "transitive" and "partial" bits, log each error condition independently
| * | bgpd: check LOCAL_PREF attribute flags (BZ#674)Denis Ovsienko2011-09-271-2/+27
| | | | | | | | | | | | | | | | | | | | | | | | * bgp_attr.c * bgp_attr_local_pref(): accept extra argument, add checks for "optional" and "transitive" bits, log each error condition independently * bgp_attr_parse(): provide extra argument
| * | bgpd: add useful notification logs (BZ#616)heasley2011-09-271-3/+16
| | | | | | | | | | | | | | | * bgp_packet.c * bgp_notify_send_with_data(): add calls to zlog_info()
| * | bgpd: consistent log msg format (BZ#565)heasley2011-09-271-5/+5
| | |
| * | ospf6d: add lost lines to area config blockJon Andersson2011-09-271-0/+12
| | | | | | | | | | | | | | | | | | * ospf6_area.c * ospf6_area_config_write(): write filter-list, import-list and export-list lines
| * | ospf6d: fix crash on filter-list handling (BZ#530)Christian Hammers2011-09-271-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | 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
| * | configure: fix FreeBSD header detection (BZ#408)Denis Ovsienko2011-09-271-9/+30
| | | | | | | | | | | | | | | | | | | | | | | | This change is based on Xavier Beaudouin's patch (which fixes detection of 3 config.h macros on FreeBSD without any impact to Linux build of Quagga) and FreeBSD port patch (which fixes 5 config.h macros, but breaks the Linux build), it fixes 5 macros and works for both FreeBSD 8 and Linux.
| * | isisd: include hash.h, not hash.cPeter Szilagyi2011-09-271-1/+1
| | |
| * | isisd: raise hello rate for DIS (BZ#539)Fritz Reichmann2011-09-271-2/+24
| | | | | | | | | | | | | | | * isis_pdu.c: Divide hello interval by three, depending if we are DIS or not.
| * | isisd: fix crash on "no router isis" (BZ#536)Fritz Reichmann2011-09-276-3/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The crash is due to threads accessing data that gets destroyed during the removal of the configuration. * isis_circuit.c: Destroy adjacencies to stop adjacency expiry thread. Stop PSNP threads. * isisd.c: Change state of circuit back to INIT and reassign the circuit structure to isis->init_circ_list rather than destroying the circuit data structure. Stop SPF threads. Stop LSP generation threads. * isisd.h: Add pointers to LSP threads into area structure in order to stop them in isisd.c * isis_lsp.c: Store pointer to LSP thread in area structure. * isis_pdu.c: Stop PDU generation for a circuit with a removed area. * isis_pfpacket.c: Stop processing received PDUs for a circuit with a removed area.
| * | configure: dismiss libutil.hStephen Hemminger2011-09-272-5/+1
| | | | | | | | | | | | | | | Recent versions of libc on Linux (Debian Testing) create lots of compile warnings about direct usage of libutil.h
| * | zebra: fix loss of metric for Linux routesDmitry Popov2011-09-271-2/+8
| | | | | | | | | | | | | | | | | | * rt_netlink.c * netlink_route_change(): fetch metric information like netlink_routing_table() does and pass it further
| * | ospfd: remove useless RFC1583 checkAlexandre Chappuis2011-09-271-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ospf_route.c: Function ospf_asbr_route_cmp is called uniquely from ospf_route_cmp() when the flag OSPF_RFC1583_COMPATIBLE is not set. Therefore, the check that the flag is set doesn't make sense at all and it can consequently be removed without doing any harm. Signed-off-by: Alexandre Chappuis <alc@open.ch> Signed-off-by: Roman Hoog Antink <rha@open.ch>
| * | doc: BGP route-flap dampeningAlexandre Chappuis2011-09-271-0/+30
| | |
| * | doc: add missing wordAlexandre Chappuis2011-09-271-1/+1
| | | | | | | | | | | | | | | * ospfd.texi: Adjust meaning of the rfc1583compatibility option in order to match the RFC specification and the actual source code.
| * | release: 0.99.19quagga_0_99_19_releaseDenis Ovsienko2011-09-261-1/+1
| | |
| * | ospf6d: CVE-2011-3323 (fortify packet reception)Denis Ovsienko2011-09-267-73/+492
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This vulnerability (CERT-FI #514840) was reported by CROSS project. ospf6d processes IPv6 prefix structures in incoming packets without verifying that the declared prefix length is valid. This leads to a crash caused by out of bounds memory access. * ospf6_abr.h: new macros for size/alignment validation * ospf6_asbr.h: idem * ospf6_intra.h: idem * ospf6_lsa.h: idem * ospf6_message.h: idem * ospf6_proto.h: idem * ospf6_message.c * ospf6_packet_minlen: helper array for ospf6_packet_examin() * ospf6_lsa_minlen: helper array for ospf6_lsa_examin() * ospf6_hello_recv(): do not call ospf6_header_examin(), let upper layer verify the input data * ospf6_dbdesc_recv(): idem * ospf6_lsreq_recv(): idem * ospf6_lsupdate_recv(): idem * ospf6_lsack_recv(): idem * ospf6_prefixes_examin(): new function, implements A.4.1 * ospf6_lsa_examin(): new function, implements A.4 * ospf6_lsaseq_examin(): new function, an interface to above * ospf6_packet_examin(): new function, implements A.3 * ospf6_rxpacket_examin(): new function, replaces ospf6_header_examin() * ospf6_header_examin(): sayonara * ospf6_receive(): perform passive interface check earliest possible, employ ospf6_rxpacket_examin()
| * | ospf6d: CVE-2011-3324 (DD LSA assertion)Denis Ovsienko2011-09-261-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This vulnerability (CERT-FI #514839) was reported by CROSS project. When Database Description LSA header list contains trailing zero octets, ospf6d tries to process this data as an LSA header. This triggers an assertion in the code and ospf6d shuts down. * ospf6_lsa.c * ospf6_lsa_is_changed(): handle header-only argument(s) appropriately, do not treat LSA length underrun as a fatal error.
| * | ospfd: CVE-2011-3325 part 2 (OSPF pkt type segv)Denis Ovsienko2011-09-261-14/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This vulnerability (CERT-FI #514838) was reported by CROSS project. The error is reproducible only when ospfd debugging is enabled: * debug ospf packet all * debug ospf zebra When incoming packet header type field is set to 0x0a, ospfd will crash. * ospf_packet.c * ospf_verify_header(): add type field check * ospf_read(): perform input checks early
| * | ospfd: CVE-2011-3325 part 1 (OSPF header underrun)Denis Ovsienko2011-09-261-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | This vulnerability (CERT-FI #514838) was reported by CROSS project. When only 14 first bytes of a Hello packet is delivered, ospfd crashes. * ospf_packet.c * ospf_read(): add size check
| * | ospfd: CVE-2011-3326 (uknown LSA type segfault)CROSS2011-09-261-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This vulnerability (CERT-FI #514837) was reported by CROSS project. They have also suggested a fix to the problem, which was found acceptable. Quagga ospfd does not seem to handle unknown LSA types in a Link State Update message correctly. If LSA type is something else than one supported by Quagga, the default handling of unknown types leads to an error. * ospf_flood.c * ospf_flood(): check return value of ospf_lsa_install()
| * | bgpd: CVE-2011-3327 (ext. comm. buffer overflow)CROSS2011-09-261-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This vulnerability (CERT-FI #513254) was reported by CROSS project. They have also suggested a fix to the problem, which was found acceptable. The problem occurs when bgpd receives an UPDATE message containing 255 unknown AS_PATH attributes in Path Attribute Extended Communities. This causes a buffer overlow in bgpd. * bgp_ecommunity.c * ecommunity_ecom2str(): perform size check earlier
| * | ospf6d: add missing includeDenis Ovsienko2011-08-271-0/+3
| | | | | | | | | | | | | | | | | | | | | Two extern declarations in ospf6_abr.h are based on struct ospf6_route, which may not be available at the time ospf6_abr.h is included. This may lead to warnings after including ospf6_abr.h just for the structures defined in it.
| * | ospf6d: move named constants to ospf6d.hDenis Ovsienko2011-08-272-2/+3
| | |
| * | ospf6d: justify some ABR debug codeDenis Ovsienko2011-08-271-2/+4
| | | | | | | | | | | | | | | * ospf6_abr.c * ospf6_abr_examin_summary(): only fill "buf" when it is used
* | | Fix broken prefix-list handling in bgpdChris Hall2012-02-2915-1041/+1193
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some changes to symtab.c had broken the symbol reference handling for prefix-lists in plist.c This commit further "improves" the symbol table functions, to support current use rather better. One key change is that the symbol table supports the notion of a symbol which is "set", so has some value other than its name. In the case of prefix-lists, a prefix-list is "set" when there is at least one (valid) entry or a description has been set. Changes include: * small changes in bgpd/bgp_clist.c where symbol table function names have changed and other small differences. * similarly in bgpd/bgp_peer_index.c, but here also clarified ownership of the peer index entries, and ensured that the symbol table stuff does *not* free same. * in bgpd/bgp_route.c fixed the handling of references to prefix-lists. Newer symbol handling more clearly identifies when a symbol has some value "set". * in bgpd/bgp_vty.c similarly, when showing state of filtering the "*" against a prefix-list means it is "set". * in lib/plist.c -- adjust to newer symbol table stuff. Fix issues will add_hook and delete_hook. Changed lookup so that if plist is not set, then lookup will return not-found -- so works as before (!). * adjusted test for symbol stuff.
* | | Reverse erroneous part of previous fix for bug in zclient.Chris Hall2012-02-271-2/+0
| | | | | | | | | | | | Fix was in two parts. One part, correct. Second part, not.
* | | Reviewed and improved vty and (particularly) vtysh.Chris Hall2012-02-2631-1196/+1585
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix stream_put() to accept NULL src (again). * changed how vty terminal reports time-out and end-of-file, and made --more-- show the same as ordinary cli. * tighten on or two stream functions, to cope if for some reason the getp > endp or endp > size. * update documentation in vio_lines.c * fixed (potential) bug which would have tripped up --more-- if were to be required while outputting notification for a cancel operation. * as a new command loop is set up, make sure all start in vst_cmd_running_executing, so that output will be dispatched. * fix uty_std_out_push() and uty_vtysh_out_push to take notice of vst_cmd_running and vst_cmd_executing and change to vst_cmd_complete as required. * fix handling of hold_mark in VOUT_TERM obuf an line control. * fix various state related issues for vtysh server and the vtysh itself. * when vtysh connects to a daemon, the daemon responds with its name and version number. TBD: the vtysh to check that version is as expected ! * clarified handling of errors in vtysh... distinguishing errors reported by the client daemon, and errors in the mechanics of talking to the client daemon. ~
* | | Fix bug in stream_put_ipv4()Chris Hall2012-02-246-433/+1003
| | | | | | | | | | | | | | | | | | | | | | | | Revised stream functions and built more throrough test program for same. Introduced functions in prefix.c to support both stream_put_prefix() and stream_get_prefix() -- ensuring that does not exceed possible sizes and does not output or input any bits beyond the prefix length.
* | | Fix zprivs_init for when have capabilities and *not* --dryrun.Chris Hall2012-02-231-2/+4
| | |
* | | Fix: "--more--" and "no ip prefix-list fred"Chris Hall2012-02-223-63/+139
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, fix compilation of privs.c when HAVE_CAPABILITIES. Wiping of "--more--" was issuing twice as many BS as required. (Oddly, some telnet programs tollerated this !) "no ip prefix-list fred" could hit a SEGV if there are no references to the prefix-list.
* | | Do not install "end" command in nodes where it has no effect.Chris Hall2012-02-224-32/+65
| | | | | | | | | | | | | | | | | | | | | | | | In particular, do not install in VIEW_NODE, where it prevents "en" being a short form of "enable". Also: change privilege handling so that can run bgpd --dryrun without needing to be a privileged user.
* | | Fix reading encrypted password from config and "pthreads on" commandChris Hall2012-02-2116-732/+718
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also: * re-organise vty output such that never blocks while executing a command -- but does wait/block between commands, so that all output associated with a command has completed before starts to execute the next. * make raising exception always signal the command loop, and revise code so that (a) signal is clearly secondary, and (b) that actual signal value no longer really matters. * fix timeout handling for pipe returns when only the pipe return and the pipe stderr return are left. * simplify the handling of blocking for pipes.
* | | Fix failure to build under --disable-rtadvChris Hall2012-02-213-0/+9
| | |
* | | vtysh partly restored. bgpd not crashing on over-size messages.Chris Hall2012-02-19219-22620/+33146
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NB: this is a partial interim version -- NOT for production. Reinstate vtysh. In bgpd: cope better with generating oversize messages. The "pipework" branch is no more. There is now "euro_ix" and "euro_ix_b", where 'b' stands for 'bleedin'. The "pipework" is currently in 'bleedin'. Version updated to: 0.99.18ex20b Major changes in this commit: * modified bgpd to avoid crashing if an oversize message is created. At present, any oversize messages are simply discarded. This may be a mistake... since it is possible that some routes that should have been withdrawn are not. TBA. The stream lib facilities have been overhauled to may this easier. * restoring vtysh. At present the vtysh is thought to work, except that it does not currently create integrated configuration files. For the time being, *only* the following compile: lib, bgpd, zebra, vtysh, tests All other daemons will fail to compile, and must be disabled.
* | | Merge branch 'pipework' of /git/quagga.euro-ix into euro_ix_bChris Hall2011-09-0811-483/+617
|\ \ \
| * | | Further simplification of CLI state handling.Chris Hall2011-09-0811-483/+617
| | | | | | | | | | | | | | | | Covering corner cases and reducing ambiguity.
* | | | Fix formatting of memory region "show" when no memory_trackerChris Hall2011-09-081-9/+12
| | | |