Skip to content

Releases: Quagga/quagga

Quagga 1.2.4

19 Feb 22:11
Compare
Choose a tag to compare

A brown paper release, to fix an error causing asserts in daemons. See https://bugzilla.quagga.net/show_bug.cgi?id=975. With thanks to Sergey Popov, Andreas Nilsson and Xiami.

Summary of changes:

lib: Fix assert in thread_add_unuse if thread_execute was used lib: Avoid re-definition of IPPROTO_IP with some versions of Linux

Full changelog:

commit 9d7a49f Author: Paul Jakma [email protected] Date: Mon Feb 19 20:55:20 2018 +0000

lib: Fix assert in thread_add_unuse if thread_execute was used

lib: Avoid re-definition of IPPROTO_IP with some versions of Linux

  • Starting from linux-4.11 [commit
    bcb41c6bced1ee778d23c53a6b4807fb08cf5540], linux/mroute.h includes
    linux/in.h , that makes gcc roar a lot of things like "error:
    redeclaration of enumerator 'IPPROTO_IP'" when compiling quagga-1.2.2

    lib/zebra.h includes sys/capability.h first, then includes
    netinet/in.h . In sys/capability.h, it includes linux/xattr.h, and
    that includes linux/libc-compat.h . Since at that time netinet/in.h is
    not included yet, _NETINET_IN_H is not defined, causing libc-compat.h
    set __UAPI_DEF_IN_IPPROTO to 1. Then, a include of netinet/in.h
    defines IPPROTO_IP. Later a include of linux/mroute.h includes
    linux/in.h. Because __UAPI_DEF_IN_IPPROTO is set to non zero,
    IPPROTO_IP is redeclared.

  • lib/zebra.h: Move the privs/capabilities include block to after the
    network block.