)]}'
{
  "log": [
    {
      "commit": "b8cb7c3fd44cfd0781a5e80a369ecb19eee9a4a7",
      "tree": "f9a8872017a8c4b84c9041ed25c6495dd964a0b6",
      "parents": [
        "93b493a2b010df4f67c7173c0928c8f86d9e1aa2"
      ],
      "author": {
        "name": "Lou Berger",
        "email": "lberger@labn.net",
        "time": "Tue May 17 07:10:33 2016 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@hpe.com",
        "time": "Tue Sep 13 10:36:40 2016 +0100"
      },
      "message": "lib: fix memory leak in zprivs_caps_init\n"
    },
    {
      "commit": "e6ec2d6d18dadb119b93284ef2f5f5b5440d6f66",
      "tree": "96202e2ff5a78834986e3dd35dce947bbca1f335",
      "parents": [
        "190591f0fe3388c746ea48f69a439f4bd0b49834"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Fri Apr 08 19:30:51 2016 -0400"
      },
      "committer": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Fri Apr 22 08:38:54 2016 -0400"
      },
      "message": "lib: Fix priviledge modification for vty group specified\n\nWhen attempting to switch runtime permissions over to\nthe correct group specified for the vty group, if the\nuser specified to run as does not have that vty group\nthen do warn about the issue and stop running\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nReported-by: Thomas Martin \u003ctmartincpp@gmail.com\u003e\nTested-by: NetDEF CI System \u003ccisystem@netdef.org\u003e\n"
    },
    {
      "commit": "12bbd62112724483f72c4040a4c4b585aff8eb54",
      "tree": "74a4bca406b97b8f7b1ff015bbe8559bdafbb7cb",
      "parents": [
        "d8d5c60ecfab4dd609a07b4baa00d735f59002b9"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Tue Sep 15 02:26:44 2015 -0700"
      },
      "committer": {
        "name": "Martin Winter",
        "email": "mwinter@opensourcerouting.org",
        "time": "Fri Oct 16 23:50:46 2015 -0700"
      },
      "message": "lib: add getgrouplist() for Solaris\n\nOf course Solaris doesn\u0027t have getgrouplist()...\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "80c9354835bb924983d12b0efad957e78f219287",
      "tree": "679ed5f44a7cdfb20ef856a9bb90f5204516e9f9",
      "parents": [
        "d79668fb440ae2689b54f52c076dbd79a8689135"
      ],
      "author": {
        "name": "Timo Teräs",
        "email": "timo.teras@iki.fi",
        "time": "Fri May 22 13:40:56 2015 +0300"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Fri May 29 07:29:25 2015 +0200"
      },
      "message": "privs: fix privilege dropping to use system defined groups\n\nIt may be requred for quagga process to belong to additional\ngroups. E.g. nhrp module will need to talk to strongSwan using\nvici and may require additional permissions. Initialize groups\nfrom the system group database.\n\nSigned-off-by: Timo Teräs \u003ctimo.teras@iki.fi\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "a5d589dfbf2c563868d944376155cd4a5998722f",
      "tree": "77dee816875a287b74a164b393839308cfe62313",
      "parents": [
        "3065777ece6d14c6acd04f8b2b693a15c9f2f37c"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Wed May 13 13:59:18 2015 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed May 27 20:39:40 2015 +0200"
      },
      "message": "lib/privs: Don\u0027t use CAP_NET_BROADCAST\n\nFrom what I can tell, CAP_NET_BROADCAST has never been required for any\nfunctionality in the Linux kernel, so we do not really need it.\n\nHowever, it causes breakage in contexts where Quagga is started with a\nlimited set of capabilities, e.g. in Docker, because these may not\ninclude CAP_NET_BROADCAST and in the case of Docker do not even support\nadding CAP_NET_BROADCAST.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "3065777ece6d14c6acd04f8b2b693a15c9f2f37c",
      "tree": "5e8d9c5880ea7540a3e4dd6a7228b45330e5a0e8",
      "parents": [
        "19ed526eab33728723e25f2727f60f41d3533503"
      ],
      "author": {
        "name": "Christian Franke",
        "email": "nobody@nowhere.ws",
        "time": "Wed May 13 13:59:17 2015 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed May 27 20:39:04 2015 +0200"
      },
      "message": "lib/privs: display more info if cap_set_proc fails.\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "5cd0e5c659d0ae7840748e83cd9f340568fa4204",
      "tree": "0d5a4fbd02c83bd71d6c1cd6e833609a00345559",
      "parents": [
        "d8d54ab78d915921a88a8707426e307aed3c323e"
      ],
      "author": {
        "name": "Brian Bennett",
        "email": "brian.bennett@joyent.com",
        "time": "Tue Feb 17 23:24:15 2015 +0000"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Mar 04 07:31:13 2015 +0100"
      },
      "message": "lib: Fix POSIX capabilities on SunOS platforms\n\nWhen using POSIX capabilities on SunOS the capabilities are too\nrestricitve resulting in quagga processes not being able to read their\nown config files. Credit goes to Oracle where this patch was originally\nauthored and included in OpenSolaris.\n\nlib/privs.c: Include additional capabilities, better checking of\n    missing capabilities.\n\nFixes: #820\nAcked-by: Greg Troxel \u003cgdt@ir.bbn.com\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "6b0655a25194c7c0331154edaa6124cf783e5e5e",
      "tree": "c0c7d479f2684531249668210da27a60322ba395",
      "parents": [
        "fdb913aedb5a9807ad60715e8badb4f25d57acea"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jun 04 06:53:35 2014 +0200"
      },
      "committer": {
        "name": "David Lamparter",
        "email": "equinox@opensourcerouting.org",
        "time": "Wed Jun 04 06:58:02 2014 +0200"
      },
      "message": "*: nuke ^L (page feed)\n\nQuagga sources have inherited a slew of Page Feed (^L, \\xC) characters\nfrom ancient history.  Among other things, these break patchwork\u0027s\nXML-RPC API because \\xC is not a valid character in XML documents.\n\nNuke them from high orbit.\n\nPatches can be adapted simply by:\n\tsed -e \u0027s%^L%%\u0027 -i filename.patch\n(you can type page feeds in some environments with Ctrl-V Ctrl-L)\n\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n"
    },
    {
      "commit": "6b148faa291f68dd43bba37fbc0e6b75a2e1e078",
      "tree": "7e9f1d21114da9be1587047adef75a373aeae6a8",
      "parents": [
        "e08286bcf8a73d1922b0464bef52c1b27eda7c43"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Sep 18 18:07:18 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Sep 18 18:07:18 2007 +0000"
      },
      "message": "[privs/Solaris] Quagga should work in zones with IP instances\n\n2007-09-18  Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* privs.c: definition of ZCAP_NET_ADMIN on Solaris should\n\t  be PRIV_SYS_IP_CONFIG, when that\u0027s available. Thus allowing\n\t  Quagga to work with in Solaris zones with exclusive IP\n\t  instances.\n"
    },
    {
      "commit": "924f9d32d9c42d6861f19bae795c48b48c83af23",
      "tree": "e0fe7af931c30d337c1dec84bff8dfb97fa146bf",
      "parents": [
        "cbdfbaa51b600c7b217968b99a9b5a8fbf04bec4"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:25:52 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:25:52 2006 +0000"
      },
      "message": "[lib/privs] Changing user IDs should be done before dropping privileges\n\n2006-03-14 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* privs.c: (zprivs_caps_init) Change user IDs before lowering\n\t  privileges, while this seems to work on Linux, on Solaris\n\t  it rightfully refuses due to PRIV_PROC_SETID having been\n\t  dropped.\n"
    },
    {
      "commit": "6e0f1b940dc281863ef9d9f3bd57676927b8603f",
      "tree": "d6b5bdc6518a4ca4ac8c9d6df0ffd4bab21b369b",
      "parents": [
        "a0ace1e8f2331f497ccea3d840a4051f75341fdf"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 24 12:47:17 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 24 12:47:17 2005 +0000"
      },
      "message": "[privs/solaris] Fix unused variable and incorrect format string.\n\n2005-11-24 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* privs.c: (zcaps2sys/solaris) remove unused variable.\n\t  (zprivs_state_caps/solaris) Format string missing a\n\t  specifier.\n"
    },
    {
      "commit": "ceacedba227e77156f92f7676b274c48a2817e8f",
      "tree": "f362ecc8f6f183347ebe45ab79727b54d2f527a6",
      "parents": [
        "e62178797d0ee5f326fd587b84ee965cf88833e4"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Sep 29 14:39:32 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Sep 29 14:39:32 2005 +0000"
      },
      "message": "2005-09-29 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: Add the test for Solaris least-privileges. Set\n\t  defines for whether capabilities are supported and whether of\n\t  the linux or solaris variety.\n\t  Add missing-prototypes, missing-declarations, char-subscripts\n\t  and cast-qual warnings to default cflags, cause Hasso enjoys warnings,\n\t  and we really should clean the remaining ones up. (ie isisd..).\n\t* (*/*main.c) Update the zebra_capabilities_t arrays in the various\n\t  daemons to match the changes made in lib/privs.h.\n\t* zebra.h: Solaris capabilities requires priv.h to be included.\n\t* privs.{c,h}: Add support for Solaris Least-Privileges.\n\t  privs.h: Reduce some of the abstract capabilities, which do\n\t  not have rough equivalents on both systems. Rename the net\n\t  related caps to _NET, as they should have been in first\n\t  place.\n\t  (zprivs_terminate) should take the zebra_privs_t as argument so\n\t  that it can update change pointer.\n\t  Add an additional privilege state, ZPRIVS_UNKNOWN.\n\t* privs.c: (various capability functions) Add\n\t  Solaris privileges variants.\n\t  (zprivs_state) Use privs.c specific generic types to\n          represent various capability/privilege related types, so that\n          each can be typedef\u0027d as appropriate on each platform.\n\t  (zprivs_null_state) static added, to hold the state the null\n\t  method should report (should be raised by default, and\n          LOWERED if zprivs_terminate has been called)\n          (zprivs_state_null) Report back the zprivs_null_state.\n          (cap_map) Make it able to map abstract capability to multiple\n          system capabilities.\n          (zcaps2sys) Map to abstract capabilities to multiple system\n          privileges/capabilities.\n          (zprivs_init) move capability related init to seperate\n\t  function, zprivs_caps_init.\n          (zprivs_terminate) ditto, moved to zprivs_caps_terminate.\n          Set the change_state callback to the NULL state, so the\n          user can continue to run and use the callbacks.\n"
    },
    {
      "commit": "6099b3b56956322567323c11fd698b2328c6826b",
      "tree": "fa537bd0eaa9f7d824f39445eabc928db59050ca",
      "parents": [
        "ae5e24d8678f1e3a60dde58d3382c5ba73d6bb27"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Nov 20 02:06:59 2004 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Sat Nov 20 02:06:59 2004 +0000"
      },
      "message": "2004-11-19 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* global: Replace strerror with safe_strerror.  And vtysh/vtysh.c\n\t  needs to include \"log.h\" to pick up the declaration.\n"
    },
    {
      "commit": "58a9d81c687e3722a5dbd0bcf03aaf009687d5fa",
      "tree": "48c3e642c81d5573c0b98178b78e5ffad9b8a4c6",
      "parents": [
        "847375b9ea6facadba6517d50bfb9ade4bf65242"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 11 05:12:40 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jun 11 05:12:40 2003 +0000"
      },
      "message": "2003-06-11 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* lib/privs.h (zprivs_init): do not use zlog() as it depends on\n\t  vty having been initialised (zlog calls vty_log). print to stderr\n\t  directly instead.\n"
    },
    {
      "commit": "ba3a0bc5fa05691b211340bef69c5c7a3659d412",
      "tree": "af7b0b8ca5ba7f6c39b96be1ea180135a9159e64",
      "parents": [
        "edd7c245d3a77012abf801da00d5664ebaa5f749"
      ],
      "author": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Jun 04 17:41:54 2003 +0000"
      },
      "committer": {
        "name": "hasso",
        "email": "hasso",
        "time": "Wed Jun 04 17:41:54 2003 +0000"
      },
      "message": "Paul forgot probably to commit privs.[c|h] changes. Had to reorder includes\nin zebra.h to make it compile in debian.\n"
    },
    {
      "commit": "8d6b00e4f34dfb6f627b49713bf80b0745b50abc",
      "tree": "ac75a46e6aea59d3e91b86d81c44d94462fd3396",
      "parents": [
        "3dec2de3eecd475db69ec3746a631ec1591d08a5"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 22 02:35:52 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu May 22 02:35:52 2003 +0000"
      },
      "message": "Add additional system capabilities\n"
    },
    {
      "commit": "28efaa3669242a2a00207e209a86aebfbefaf6e0",
      "tree": "ea88d88203c59830e7a281a24da81a83de753867",
      "parents": [
        "ba965c6c45865fee03410c1b75ef254e4d7e3ceb"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 20 03:49:43 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 20 03:49:43 2003 +0000"
      },
      "message": "Fix stray comment and using pwentry for group info.\n"
    },
    {
      "commit": "33b72948209fee3ba217f7495fc1d12bb2ff187a",
      "tree": "29a65e93047a18a18cab6f3e4c58716b6938a6b5",
      "parents": [
        "01245821ad005de555634330e0bd0bef3fbdb711"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 20 02:22:42 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 20 02:22:42 2003 +0000"
      },
      "message": "Fix several small caps related errors.\n"
    },
    {
      "commit": "01245821ad005de555634330e0bd0bef3fbdb711",
      "tree": "935d4cc4fdabf5a9e026ac9fc76e476c4a0d477f",
      "parents": [
        "6382b6f83d5f4e1fea424c1164cfdd9f9ea6f40e"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 20 01:22:17 2003 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue May 20 01:22:17 2003 +0000"
      },
      "message": "Privilege support files for zebra.\nLinux capabilities enabled (if libcap is enabled).\n"
    }
  ]
}
