)]}'
{
  "log": [
    {
      "commit": "06c22dadc6d3f9b65e55407a87faaf6a4a014112",
      "tree": "e310b20a17014b491d86818fd58878839a48dffc",
      "parents": [
        "3cfc2c42c1cbc8e238bb9c0612c0df4565e3a8b4"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Aug 02 10:52:18 2010 -0700"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Aug 05 07:36:51 2010 -0400"
      },
      "message": "apparmor: depends on NET\n\nSECURITY_APPARMOR should depend on NET since AUDIT needs\n(depends on) NET.\n\nFixes 70-80 errors that occur when CONFIG_NET is not enabled,\nbut APPARMOR selects AUDIT without qualification.  E.g.:\n\naudit.c:(.text+0x33361): undefined reference to `netlink_unicast\u0027\n(.text+0x333df): undefined reference to `netlink_unicast\u0027\naudit.c:(.text+0x3341d): undefined reference to `skb_queue_tail\u0027\naudit.c:(.text+0x33424): undefined reference to `kfree_skb\u0027\naudit.c:(.text+0x334cb): undefined reference to `kfree_skb\u0027\naudit.c:(.text+0x33597): undefined reference to `skb_put\u0027\naudit.c:(.text+0x3369b): undefined reference to `__alloc_skb\u0027\naudit.c:(.text+0x336d7): undefined reference to `kfree_skb\u0027\n(.text+0x3374c): undefined reference to `__alloc_skb\u0027\nauditfilter.c:(.text+0x35305): undefined reference to `skb_queue_tail\u0027\nlsm_audit.c:(.text+0x2873): undefined reference to `init_net\u0027\nlsm_audit.c:(.text+0x2878): undefined reference to `dev_get_by_index\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "77c80e6b2fd049848bfd1bdab67899ad3ac407a7",
      "tree": "672ccbe5316698e0ef4dae46ba0029fb234989bf",
      "parents": [
        "6371dcd36f649d9d07823f31400618155a20dde1"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:49:00 2010 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:49:00 2010 +1000"
      },
      "message": "AppArmor: fix build warnings for non-const use of get_task_cred\n\nFix build warnings for non-const use of get_task_cred.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "016d825fe02cd20fd8803ca37a1e6d428fe878f6",
      "tree": "b36bafad46e09a1a62f3521536a703c58540f675",
      "parents": [
        "484ca79c653121d3c79fffb86e1deea724f2e20b"
      ],
      "author": {
        "name": "John Johansen",
        "email": "john.johansen@canonical.com",
        "time": "Fri Jul 30 13:46:33 2010 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:38:39 2010 +1000"
      },
      "message": "AppArmor: Enable configuring and building of the AppArmor security module\n\nKconfig and Makefiles to enable configuration and building of AppArmor.\n\nSigned-off-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "4d6ec10bb4461fdc9a9ab94ef32934e13564e873",
      "tree": "b252da668c7485b864dd012b33f58d7c108d99a1",
      "parents": [
        "c88d4c7b049e87998ac0a9f455aa545cc895ef92"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Jul 30 09:02:04 2010 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:38:37 2010 +1000"
      },
      "message": "AppArmor: update path_truncate method to latest version\n\nRemove extraneous path_truncate arguments from the AppArmor hook,\nas they\u0027ve been removed from the LSM API.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "c88d4c7b049e87998ac0a9f455aa545cc895ef92",
      "tree": "1859582b4afec1116b6831ea89ae27c35209991a",
      "parents": [
        "736ec752d95e91e77cc0e8c97c057ab076ac2f51"
      ],
      "author": {
        "name": "John Johansen",
        "email": "john.johansen@canonical.com",
        "time": "Thu Jul 29 14:48:00 2010 -0700"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:38:37 2010 +1000"
      },
      "message": "AppArmor: core policy routines\n\nThe basic routines and defines for AppArmor policy.  AppArmor policy\nis defined by a few basic components.\n      profiles - the basic unit of confinement contain all the information\n                 to enforce policy on a task\n\n                 Profiles tend to be named after an executable that they\n                 will attach to but this is not required.\n      namespaces - a container for a set of profiles that will be used\n                 during attachment and transitions between profiles.\n      sids - which provide a unique id for each profile\n\nSigned-off-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "736ec752d95e91e77cc0e8c97c057ab076ac2f51",
      "tree": "128d330ecff67c5d83862062825b7975c92fee96",
      "parents": [
        "0ed3b28ab8bf460a3a026f3f1782bf4c53840184"
      ],
      "author": {
        "name": "John Johansen",
        "email": "john.johansen@canonical.com",
        "time": "Thu Jul 29 14:48:02 2010 -0700"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:38:36 2010 +1000"
      },
      "message": "AppArmor: policy routines for loading and unpacking policy\n\nAppArmor policy is loaded in a platform independent flattened binary\nstream.  Verify and unpack the data converting it to the internal\nformat needed for enforcement.\n\nSigned-off-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "0ed3b28ab8bf460a3a026f3f1782bf4c53840184",
      "tree": "9da3a2c6d9f55d3166726fe7c51671a6029c1269",
      "parents": [
        "b5e95b48685e3481139a5634d14d630d12c7d5ce"
      ],
      "author": {
        "name": "John Johansen",
        "email": "john.johansen@canonical.com",
        "time": "Thu Jul 29 14:48:05 2010 -0700"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:38:35 2010 +1000"
      },
      "message": "AppArmor: mediation of non file objects\n\nipc:\nAppArmor ipc is currently limited to mediation done by file mediation\nand basic ptrace tests.  Improved mediation is a wip.\n\nrlimits:\nAppArmor provides basic abilities to set and control rlimits at\na per profile level.  Only resources specified in a profile are controled\nor set.  AppArmor rules set the hard limit to a value \u003c\u003d to the current\nhard limit (ie. they can not currently raise hard limits), and if\nnecessary will lower the soft limit to the new hard limit value.\n\nAppArmor does not track resource limits to reset them when a profile\nis left so that children processes inherit the limits set by the\nparent even if they are not confined by the same profile.\n\nCapabilities:  AppArmor provides a per profile mask of capabilities,\nthat will further restrict.\n\nSigned-off-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b5e95b48685e3481139a5634d14d630d12c7d5ce",
      "tree": "1468141db6ff1a291bde0b6a960c2af7e520b52b",
      "parents": [
        "f9ad1af53d5232a89a1ff1827102843999975dfa"
      ],
      "author": {
        "name": "John Johansen",
        "email": "john.johansen@canonical.com",
        "time": "Thu Jul 29 14:48:07 2010 -0700"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:38:35 2010 +1000"
      },
      "message": "AppArmor: LSM interface, and security module initialization\n\nAppArmor hooks to interface with the LSM, module parameters and module\ninitialization.\n\nSigned-off-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "898127c34ec03291c86f4ff3856d79e9e18952bc",
      "tree": "c8845bd204b1c4b120f1be1cceea4ff96f749e53",
      "parents": [
        "6380bd8ddf613b29f478396308b591867d401de4"
      ],
      "author": {
        "name": "John Johansen",
        "email": "john.johansen@canonical.com",
        "time": "Thu Jul 29 14:48:06 2010 -0700"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:14 2010 +1000"
      },
      "message": "AppArmor: functions for domain transitions\n\nAppArmor routines for controling domain transitions, which can occur at\nexec or through self directed change_profile/change_hat calls.\n\nUnconfined tasks are checked at exec against the profiles in the confining\nprofile namespace to determine if a profile should be attached to the task.\n\nConfined tasks execs are controlled by the profile which provides rules\ndetermining which execs are allowed and if so which profiles should be\ntransitioned to.\n\nSelf directed domain transitions allow a task to request transition\nto a given profile.  If the transition is allowed then the profile will\nbe applied, either immeditately or at exec time depending on the request.\nImmeditate self directed transitions have several security limitations\nbut have uses in setting up stub transition profiles and other limited\ncases.\n\nSigned-off-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6380bd8ddf613b29f478396308b591867d401de4",
      "tree": "6d8fc9356a652f8452ccf49e7f79cc700cc2768d",
      "parents": [
        "63e2b423771ab0bc7ad4d407f3f6517c6d05cdc0"
      ],
      "author": {
        "name": "John Johansen",
        "email": "john.johansen@canonical.com",
        "time": "Thu Jul 29 14:48:04 2010 -0700"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:14 2010 +1000"
      },
      "message": "AppArmor: file enforcement routines\n\nAppArmor does files enforcement via pathname matching.  Matching is done\nat file open using a dfa match engine.  Permission is against the final\nfile object not parent directories, ie. the traversal of directories\nas part of the file match is implicitly allowed.  In the case of nonexistant\nfiles (creation) permissions are checked against the target file not the\ndirectory.  eg. In case of creating the file /dir/new, permissions are\nchecked against the match /dir/new not against /dir/.\n\nThe permissions for matches are currently stored in the dfa accept table,\nbut this will change to allow for dfa reuse and also to allow for sharing\nof wider accept states.\n\nSigned-off-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "63e2b423771ab0bc7ad4d407f3f6517c6d05cdc0",
      "tree": "e50efc9593c7558d3700ec55869f9ddbac283a1d",
      "parents": [
        "e06f75a6a2b43bd3a7a197bd21466f9da130e4af"
      ],
      "author": {
        "name": "John Johansen",
        "email": "john.johansen@canonical.com",
        "time": "Thu Jul 29 14:48:03 2010 -0700"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:13 2010 +1000"
      },
      "message": "AppArmor: userspace interfaces\n\nThe /proc/\u003cpid\u003e/attr/* interface is used for process introspection and\ncommands.  While the apparmorfs interface is used for global introspection\nand loading and removing policy.\n\nThe interface currently only contains the files necessary for loading\npolicy, and will be extended in the future to include sysfs style\nsingle per file introspection inteface.\n\nThe old AppArmor 2.4 interface files have been removed into a compatibility\npatch, that distros can use to maintain backwards compatibility.\n\nSigned-off-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "e06f75a6a2b43bd3a7a197bd21466f9da130e4af",
      "tree": "bf5aabceae66c62e317a0403b05ffb320aef54d2",
      "parents": [
        "c75afcd153f6147d3b094f45a1d87e5df7f4f053"
      ],
      "author": {
        "name": "John Johansen",
        "email": "john.johansen@canonical.com",
        "time": "Thu Jul 29 14:48:01 2010 -0700"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:13 2010 +1000"
      },
      "message": "AppArmor: dfa match engine\n\nA basic dfa matching engine based off the dfa engine in the Dragon\nBook.  It uses simple row comb compression with a check field.\n\nThis allows AppArmor to do pattern matching in linear time, and also\navoids stack issues that an nfa based engine may have.  The dfa\nengine uses a byte based comparison, with all values being valid.\nAny potential character encoding are handled user side when the dfa\ntables are created.  By convention AppArmor uses \\0 to separate two\ndependent path matches since \\0 is not a valid path character\n(this is done in the link permission check).\n\nThe dfa tables are generated in user space and are verified at load\ntime to be internally consistent.\n\nThere are several future improvements planned for the dfa engine:\n* The dfa engine may be converted to a hybrid nfa-dfa engine, with\n  a fixed size limited stack.  This would allow for size time\n  tradeoffs, by inserting limited nfa states to help control\n  state explosion that can occur with dfas.\n* The dfa engine may pickup the ability to do limited dynamic\n  variable matching, instead of fixing all variables at policy\n  load time.\n\nSigned-off-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "c75afcd153f6147d3b094f45a1d87e5df7f4f053",
      "tree": "4d072c7b76a1e198427716f66a46712e508d4597",
      "parents": [
        "67012e8209df95a8290d135753ff5145431a666e"
      ],
      "author": {
        "name": "John Johansen",
        "email": "john.johansen@canonical.com",
        "time": "Thu Jul 29 14:47:59 2010 -0700"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:12 2010 +1000"
      },
      "message": "AppArmor: contexts used in attaching policy to system objects\n\nAppArmor contexts attach profiles and state to tasks, files, etc. when\na direct profile reference is not sufficient.\n\nSigned-off-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "67012e8209df95a8290d135753ff5145431a666e",
      "tree": "fc95b2c33d2e2d206500d7ec7e78dd855d4b3d2c",
      "parents": [
        "cdff264264254e0fabc8107a33f3bb75a95e981f"
      ],
      "author": {
        "name": "John Johansen",
        "email": "john.johansen@canonical.com",
        "time": "Thu Jul 29 14:47:58 2010 -0700"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:11 2010 +1000"
      },
      "message": "AppArmor: basic auditing infrastructure.\n\nUpdate lsm_audit for AppArmor specific data, and add the core routines for\nAppArmor uses for auditing.\n\nSigned-off-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "cdff264264254e0fabc8107a33f3bb75a95e981f",
      "tree": "a20956e2a7a38e195071ded57fca02e1d1b1314c",
      "parents": [
        "e6f6a4cc955d626ed26562d98de5766bf1f73526"
      ],
      "author": {
        "name": "John Johansen",
        "email": "john.johansen@canonical.com",
        "time": "Thu Jul 29 14:47:57 2010 -0700"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:11 2010 +1000"
      },
      "message": "AppArmor: misc. base functions and defines\n\nMiscellaneous functions and defines needed by AppArmor, including\nthe base path resolution routines.\n\nSigned-off-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    }
  ]
}
