)]}'
{
  "log": [
    {
      "commit": "b34d8915c413acb51d837a45fb8747b61f65c020",
      "tree": "ced5fac166324634653d84b1afe2b958b3904f4d",
      "parents": [
        "e8a89cebdbaab14caaa26debdb4ffd493b8831af",
        "f33ebbe9da2c3c24664a0ad4f8fd83f293547e63"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 12:07:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 12:07:51 2010 -0700"
      },
      "message": "Merge branch \u0027writable_limits\u0027 of git://decibel.fi.muni.cz/~xslaby/linux\n\n* \u0027writable_limits\u0027 of git://decibel.fi.muni.cz/~xslaby/linux:\n  unistd: add __NR_prlimit64 syscall numbers\n  rlimits: implement prlimit64 syscall\n  rlimits: switch more rlimit syscalls to do_prlimit\n  rlimits: redo do_setrlimit to more generic do_prlimit\n  rlimits: add rlimit64 structure\n  rlimits: do security check under task_lock\n  rlimits: allow setrlimit to non-current tasks\n  rlimits: split sys_setrlimit\n  rlimits: selinux, do rlimits changes under task_lock\n  rlimits: make sure -\u003erlim_max never grows in sys_setrlimit\n  rlimits: add task_struct to update_rlimit_cpu\n  rlimits: security, add task_struct to setrlimit\n\nFix up various system call number conflicts.  We not only added fanotify\nsystem calls in the meantime, but asm-generic/unistd.h added a wait4\nalong with a range of reserved per-architecture system calls.\n"
    },
    {
      "commit": "a7a387cc596278af1516c534b50cc0bee171129d",
      "tree": "6b020262150ab47e2aaeb7ccdd57534460df2665",
      "parents": [
        "06c22dadc6d3f9b65e55407a87faaf6a4a014112"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Fri Aug 06 20:37:56 2010 +0100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Aug 06 18:11:39 2010 -0400"
      },
      "message": "SELINUX: Fix build error.\n\nFix build error caused by a stale security/selinux/av_permissions.h in the $(src)\ndirectory which will override a more recent version in $(obj) that is it\nappears to strike only when building with a separate object directory.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6371dcd36f649d9d07823f31400618155a20dde1",
      "tree": "a08c4ed2ec77225abbfcc099e78ae8d643429787",
      "parents": [
        "016d825fe02cd20fd8803ca37a1e6d428fe878f6"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jul 29 23:02:34 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:38:39 2010 +1000"
      },
      "message": "selinux: convert the policy type_attr_map to flex_array\n\nCurrent selinux policy can have over 3000 types.  The type_attr_map in\npolicy is an array sized by the number of types times sizeof(struct ebitmap)\n(12 on x86_64).  Basic math tells us the array is going to be of length\n3000 x 12 \u003d 36,000 bytes.  The largest \u0027safe\u0027 allocation on a long running\nsystem is 16k.  Most of the time a 32k allocation will work.  But on long\nrunning systems a 64k allocation (what we need) can fail quite regularly.\nIn order to deal with this I am converting the type_attr_map to use\nflex_arrays.  Let the library code deal with breaking this into PAGE_SIZE\npieces.\n\n-v2\nrework some of the if(!obj) BUG() to be BUG_ON(!obj)\ndrop flex_array_put() calls and just use a _get() object directly\n\n-v3\nmake apply to James\u0027 tree (drop the policydb_write changes)\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b424485abe2b16580a178b469917a7b6ee0c152a",
      "tree": "d90d4662dd1ad229976354e4caa1a7632fb2a6d3",
      "parents": [
        "49b7b8de46d293113a0a0bb026ff7bd833c73367"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jul 23 11:44:15 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:09 2010 +1000"
      },
      "message": "SELinux: Move execmod to the common perms\n\nexecmod \"could\" show up on non regular files and non chr files.  The current\nimplementation would actually make these checks against non-existant bits\nsince the code assumes the execmod permission is same for all file types.\nTo make this line up for chr files we had to define execute_no_trans and\nentrypoint permissions.  These permissions are unreachable and only existed\nto to make FILE__EXECMOD and CHR_FILE__EXECMOD the same.  This patch drops\nthose needless perms as well.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "49b7b8de46d293113a0a0bb026ff7bd833c73367",
      "tree": "ff29778c49a8ac1511249cc268ddbb2c6ddb86a9",
      "parents": [
        "b782e0a68d17894d9a618ffea55b33639faa6bb4"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jul 23 11:44:09 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:08 2010 +1000"
      },
      "message": "selinux: place open in the common file perms\n\nkernel can dynamically remap perms.  Drop the open lookup table and put open\nin the common file perms.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b782e0a68d17894d9a618ffea55b33639faa6bb4",
      "tree": "307bc615153075a6e92be5d839a58ff48d6525f3",
      "parents": [
        "d09ca73979460b96d5d4684d588b188be9a1f57d"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jul 23 11:44:03 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:07 2010 +1000"
      },
      "message": "SELinux: special dontaudit for access checks\n\nCurrently there are a number of applications (nautilus being the main one) which\ncalls access() on files in order to determine how they should be displayed.  It\nis normal and expected that nautilus will want to see if files are executable\nor if they are really read/write-able.  access() should return the real\npermission.  SELinux policy checks are done in access() and can result in lots\nof AVC denials as policy denies RWX on files which DAC allows.  Currently\nSELinux must dontaudit actual attempts to read/write/execute a file in\norder to silence these messages (and not flood the logs.)  But dontaudit rules\nlike that can hide real attacks.  This patch addes a new common file\npermission audit_access.  This permission is special in that it is meaningless\nand should never show up in an allow rule.  Instead the only place this\npermission has meaning is in a dontaudit rule like so:\n\ndontaudit nautilus_t sbin_t:file audit_access\n\nWith such a rule if nautilus just checks access() we will still get denied and\nthus userspace will still get the correct answer but we will not log the denial.\nIf nautilus attempted to actually perform one of the forbidden actions\n(rather than just querying access(2) about it) we would still log a denial.\nThis type of dontaudit rule should be used sparingly, as it could be a\nmethod for an attacker to probe the system permissions without detection.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "d09ca73979460b96d5d4684d588b188be9a1f57d",
      "tree": "217543affc5c1c76181ffca00c23cfa69f1dd4f6",
      "parents": [
        "9cfcac810e8993fa7a5bfd24b1a21f1dbbb03a7b"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jul 23 11:43:57 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:07 2010 +1000"
      },
      "message": "security: make LSMs explicitly mask off permissions\n\nSELinux needs to pass the MAY_ACCESS flag so it can handle auditting\ncorrectly.  Presently the masking of MAY_* flags is done in the VFS.  In\norder to allow LSMs to decide what flags they care about and what flags\nthey don\u0027t just pass them all and the each LSM mask off what they don\u0027t\nneed.  This patch should contain no functional changes to either the VFS or\nany LSM.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "692a8a231b212dfc68f612956d63f34abf098e0f",
      "tree": "4af3c03535ebc49e38c3c0c8f67061adbdf44c72",
      "parents": [
        "d1b43547e56b163bc5c622243c47d8a13626175b"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 21 12:51:03 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:06 2010 +1000"
      },
      "message": "SELinux: break ocontext reading into a separate function\n\nMove the reading of ocontext type data out of policydb_read() in a separate\nfunction ocontext_read()\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "d1b43547e56b163bc5c622243c47d8a13626175b",
      "tree": "29b2ddd50b3a0c6fe4dcf5f78c55c8698cd11679",
      "parents": [
        "9a7982793c3aee6ce86d8e7e15306215257329f2"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 21 12:50:57 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:05 2010 +1000"
      },
      "message": "SELinux: move genfs read to a separate function\n\nmove genfs read functionality out of policydb_read() and into a new\nfunction called genfs_read()\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "9a7982793c3aee6ce86d8e7e15306215257329f2",
      "tree": "4d85f6f7a57260cefd938dca7593aabf9c02a59c",
      "parents": [
        "338437f6a09861cdf76e1396ed5fa6dee9c7cabe"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Jun 12 20:57:39 2010 +0200"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:04 2010 +1000"
      },
      "message": "selinux: fix error codes in symtab_init()\n\nhashtab_create() only returns NULL on allocation failures to -ENOMEM is\nappropriate here.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "338437f6a09861cdf76e1396ed5fa6dee9c7cabe",
      "tree": "e693392adf370b81af129b326bba45bf43f03862",
      "parents": [
        "38184c522249dc377366d4edc41dc500c2c3bb9e"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Jun 12 20:56:01 2010 +0200"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:04 2010 +1000"
      },
      "message": "selinux: fix error codes in cond_read_bool()\n\nThe original code always returned -1 (-EPERM) on error.  The new code\nreturns either -ENOMEM, or -EINVAL or it propagates the error codes from\nlower level functions next_entry() or hashtab_insert().\n\nnext_entry() returns -EINVAL.\nhashtab_insert() returns -EINVAL, -EEXIST, or -ENOMEM.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "38184c522249dc377366d4edc41dc500c2c3bb9e",
      "tree": "10c87bf5fdaea233a7842a79f04459792e1b5ba1",
      "parents": [
        "fc5c126e4733e6fb3080d3d822ca63226e74fc84"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Jun 12 20:55:01 2010 +0200"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:03 2010 +1000"
      },
      "message": "selinux: fix error codes in cond_policydb_init()\n\nIt\u0027s better to propagate the error code from avtab_init() instead of\nreturning -1 (-EPERM).  It turns out that avtab_init() never fails so\nthis patch doesn\u0027t change how the code runs but it\u0027s still a clean up.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "fc5c126e4733e6fb3080d3d822ca63226e74fc84",
      "tree": "3320c22b66107c984ac0cf07c365420df42a4977",
      "parents": [
        "9d623b17a740d5a85c12108cdc71c64fb15484fc"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Jun 12 20:53:46 2010 +0200"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:02 2010 +1000"
      },
      "message": "selinux: fix error codes in cond_read_node()\n\nOriginally cond_read_node() returned -1 (-EPERM) on errors which was\nincorrect.  Now it either propagates the error codes from lower level\nfunctions next_entry() or cond_read_av_list() or it returns -ENOMEM or\n-EINVAL.\n\nnext_entry() returns -EINVAL.\ncond_read_av_list() returns -EINVAL or -ENOMEM.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "9d623b17a740d5a85c12108cdc71c64fb15484fc",
      "tree": "15434839a75f9c46c53a201520c6c859fad3c74b",
      "parents": [
        "5241c1074f6e2f2276d45d857eb5d19fbdc2e4b2"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Jun 12 20:52:19 2010 +0200"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:02 2010 +1000"
      },
      "message": "selinux: fix error codes in cond_read_av_list()\n\nAfter this patch cond_read_av_list() no longer returns -1 for any\nerrors.  It just propagates error code back from lower levels.  Those can\neither be -EINVAL or -ENOMEM.\n\nI also modified cond_insertf() since cond_read_av_list() passes that as a\nfunction pointer to avtab_read_item().  It isn\u0027t used anywhere else.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "5241c1074f6e2f2276d45d857eb5d19fbdc2e4b2",
      "tree": "cf41e959668f5a9ec7a5d75059df864133569c91",
      "parents": [
        "9e0bd4cba4460bff64fb07cfb07849cdfd4d325a"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Jun 12 20:51:40 2010 +0200"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:01 2010 +1000"
      },
      "message": "selinux: propagate error codes in cond_read_list()\n\nThese are passed back when the security module gets loaded.\n\nThe original code always returned -1 (-EPERM) on error but after this\npatch it can return -EINVAL, or -ENOMEM or propagate the error code from\ncond_read_node().  cond_read_node() still returns -1 all the time, but I\nfix that in a later patch.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "9e0bd4cba4460bff64fb07cfb07849cdfd4d325a",
      "tree": "feebec6167012e461d286c02ae45348ad0b2d3a1",
      "parents": [
        "dce3a3d2ee038d230323fe06b061dbaace6b8f94"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Jun 12 20:50:35 2010 +0200"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:35:01 2010 +1000"
      },
      "message": "selinux: cleanup return codes in avtab_read_item()\n\nThe avtab_read_item() function tends to return -1 as a default error\ncode which is wrong (-1 means -EPERM).  I modified it to return\nappropriate error codes which is -EINVAL or the error code from\nnext_entry() or insertf().\n\nnext_entry() returns -EINVAL.\ninsertf() is a function pointer to either avtab_insert() or\ncond_insertf().\navtab_insert() returns -EINVAL, -ENOMEM, and -EEXIST.\ncond_insertf() currently returns -1, but I will fix it in a later patch.\n\nThere is code in avtab_read() which translates the -1 returns from\navtab_read_item() to -EINVAL. The translation is no longer needed, so I\nremoved it.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "57a62c2317d60b21b7761c319a733a894482a6af",
      "tree": "03329d5df0a390640fbe5a41be064e5914673b02",
      "parents": [
        "cdcd90f9e450d4edb5fab0490119f9540874e882"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Jul 07 23:40:10 2010 +0200"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:34:59 2010 +1000"
      },
      "message": "selinux: use generic_file_llseek\n\nThe default for llseek will change to no_llseek,\nso selinuxfs needs to add explicit .llseek\nassignments. Since we\u0027re dealing with regular\nfiles from a VFS perspective, use generic_file_llseek.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: Eric Paris \u003ceparis@parisplace.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "af4f136056c984b0aa67feed7d3170b958370b2f",
      "tree": "30b62cd9174044cbdfdddc1fe5e0f21e7ddde85c",
      "parents": [
        "5ad18a0d59ba9e65b3c8b2b489fd23bc6b3daf94"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Thu Jul 01 15:07:43 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:34:57 2010 +1000"
      },
      "message": "security: move LSM xattrnames to xattr.h\n\nMake the security extended attributes names global. Updated to move\nthe remaining Smack xattrs.\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "5fb49870e6d48d81d8ca0e1ef979073dc9a820f7",
      "tree": "136fdf4f4181907b89916f24a8e828c00ba3e6bd",
      "parents": [
        "253bfae6e0ad97554799affa0266052968a45808"
      ],
      "author": {
        "name": "Paul Moore",
        "email": "paul.moore@hp.com",
        "time": "Thu Apr 22 14:46:19 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:34:39 2010 +1000"
      },
      "message": "selinux: Use current_security() when possible\n\nThere were a number of places using the following code pattern:\n\n  struct cred *cred \u003d current_cred();\n  struct task_security_struct *tsec \u003d cred-\u003esecurity;\n\n... which were simplified to the following:\n\n  struct task_security_struct *tsec \u003d current_security();\n\nSigned-off-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "253bfae6e0ad97554799affa0266052968a45808",
      "tree": "c3599a18f06664160a55a20b30428ba4faf6e2c0",
      "parents": [
        "84914b7ed1c5e0f3199a5a6997022758a70fcaff"
      ],
      "author": {
        "name": "Paul Moore",
        "email": "paul.moore@hp.com",
        "time": "Thu Apr 22 14:46:19 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:34:39 2010 +1000"
      },
      "message": "selinux: Convert socket related access controls to use socket labels\n\nAt present, the socket related access controls use a mix of inode and\nsocket labels; while there should be no practical difference (they\n_should_ always be the same), it makes the code more confusing.  This\npatch attempts to convert all of the socket related access control\npoints (with the exception of some of the inode/fd based controls) to\nuse the socket\u0027s own label.  In the process, I also converted the\nsocket_has_perm() function to take a \u0027sock\u0027 argument instead of a\n\u0027socket\u0027 since that was adding a bit more overhead in some cases.\n\nSigned-off-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "84914b7ed1c5e0f3199a5a6997022758a70fcaff",
      "tree": "a0ac9631fba19280516ec26819c884e6b086b183",
      "parents": [
        "d4f2d97841827cb876da8b607df05a3dab812416"
      ],
      "author": {
        "name": "Paul Moore",
        "email": "paul.moore@hp.com",
        "time": "Thu Apr 22 14:46:18 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:34:38 2010 +1000"
      },
      "message": "selinux: Shuffle the sk_security_struct alloc and free routines\n\nThe sk_alloc_security() and sk_free_security() functions were only being\ncalled by the selinux_sk_alloc_security() and selinux_sk_free_security()\nfunctions so we just move the guts of the alloc/free routines to the\ncallers and eliminate a layer of indirection.\n\nSigned-off-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "d4f2d97841827cb876da8b607df05a3dab812416",
      "tree": "8d3128128f465e23dbfc5ee4ccc50d9bc489f7d7",
      "parents": [
        "4d1e24514d80cb266231d0c1b6c02161970ad019"
      ],
      "author": {
        "name": "Paul Moore",
        "email": "paul.moore@hp.com",
        "time": "Thu Apr 22 14:46:18 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:34:37 2010 +1000"
      },
      "message": "selinux: Consolidate sockcreate_sid logic\n\nConsolidate the basic sockcreate_sid logic into a single helper function\nwhich allows us to do some cleanups in the related code.\n\nSigned-off-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "4d1e24514d80cb266231d0c1b6c02161970ad019",
      "tree": "2de35d44c52dc1afa28c8f1bf294180817834a9d",
      "parents": [
        "e79acf0ef45e0b54aed47ebea7f25c540d3f527e"
      ],
      "author": {
        "name": "Paul Moore",
        "email": "paul.moore@hp.com",
        "time": "Thu Apr 22 14:46:18 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:34:37 2010 +1000"
      },
      "message": "selinux: Set the peer label correctly on connected UNIX domain sockets\n\nCorrect a problem where we weren\u0027t setting the peer label correctly on\nthe client end of a pair of connected UNIX sockets.\n\nSigned-off-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "9ee0c823c18119914283358b35a1c3ebb14c2f90",
      "tree": "6e29e71f1c9c7ae65d92a15a3b3220ae1d173407",
      "parents": [
        "d2f8b2348f3406652ee00ee7221441bd36fe0195"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jun 11 12:37:05 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:34:30 2010 +1000"
      },
      "message": "SELinux: seperate range transition rules to a seperate function\n\nMove the range transition rule to a separate function, range_read(), rather\nthan doing it all in policydb_read()\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "babcd37821fba57048b30151969d28303f2a8b6b",
      "tree": "f3a22f93df9d0ccb95bc653c9b56476adab05876",
      "parents": [
        "9fe6206f400646a2322096b56c59891d530e8d51"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue May 18 12:11:25 2010 -0700"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 02 15:33:35 2010 +1000"
      },
      "message": "selinux: remove all rcu head initializations\n\nRemove all rcu head inits. We don\u0027t care about the RCU head state before passing\nit to call_rcu() anyway. Only leave the \"on_stack\" variants so debugobjects can\nkeep track of objects on stack.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nCc: Eric Paris \u003ceparis@parisplace.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "eb2d55a32b9a91bca0dea299eedb560bafa8b14e",
      "tree": "1ba1a701c56614fc03d282b572164e1c409a0df0",
      "parents": [
        "2fb9d2689a0041b88b25bc3187eada2968e25995"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 23 22:43:32 2010 +0200"
      },
      "committer": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Fri Jul 16 09:48:46 2010 +0200"
      },
      "message": "rlimits: selinux, do rlimits changes under task_lock\n\nWhen doing an exec, selinux updates rlimits in its code of current\nprocess depending on current max. Make sure max or cur doesn\u0027t change\nin the meantime by grabbing task_lock which do_prlimit needs for\nchanging limits too.\n\nWhile at it, use rlimit helper for accessing CPU rlimit a line below.\nTo have a volatile access too.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "5ab46b345e418747b3a52f0892680c0745c4223c",
      "tree": "d7453221b7fc2764a7405b48b73b4ac7bf7a317a",
      "parents": [
        "8fd00b4d7014b00448eb33cf0590815304769798"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Fri Aug 28 14:05:12 2009 +0200"
      },
      "committer": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Fri Jul 16 09:48:45 2010 +0200"
      },
      "message": "rlimits: add task_struct to update_rlimit_cpu\n\nAdd task_struct as a parameter to update_rlimit_cpu to be able to set\nrlimit_cpu of different task than current.\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "8fd00b4d7014b00448eb33cf0590815304769798",
      "tree": "f97cc5b4401dd038e539dae7ad66066383012866",
      "parents": [
        "2f7989efd4398d92b8adffce2e07dd043a0895fe"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Wed Aug 26 18:41:16 2009 +0200"
      },
      "committer": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Fri Jul 16 09:48:45 2010 +0200"
      },
      "message": "rlimits: security, add task_struct to setrlimit\n\nAdd task_struct to task_setrlimit of security_operations to be able to set\nrlimit of task other than current.\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "e8c26255992474a2161c63ce9d385827302e4530",
      "tree": "08d247a53eca56a6e161ca784a4536b3ea7662f7",
      "parents": [
        "01a05b337a5b647909e1d6670f57e7202318a5fb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 23 06:36:54 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:17 2010 -0400"
      },
      "message": "switch selinux delayed superblock handling to iterate_supers()\n\n... kill their private list, while we are at it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b3139bbc52762268769e7af842aade0e64372433",
      "tree": "eae65d208fdbeaefd9bdc9c6877d8eb18e617bf6",
      "parents": [
        "9e4b50e93786d00c703f16ed46e6a4029c0dfdd1"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Fri May 14 21:30:30 2010 +0200"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon May 17 09:00:27 2010 +1000"
      },
      "message": "security/selinux/ss: Use kstrdup\n\nUse kstrdup when the goal of an allocation is copy a string into the\nallocated region.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression from,to;\nexpression flag,E1,E2;\nstatement S;\n@@\n\n-  to \u003d kmalloc(strlen(from) + 1,flag);\n+  to \u003d kstrdup(from, flag);\n   ... when !\u003d \\(from \u003d E1 \\| to \u003d E1 \\)\n   if (to\u003d\u003dNULL || ...) S\n   ... when !\u003d \\(from \u003d E2 \\| to \u003d E2 \\)\n-  strcpy(to, from);\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "0ffbe2699cda6afbe08501098dff8a8c2fe6ae09",
      "tree": "81b1a2305d16c873371b65c5a863c0268036cefe",
      "parents": [
        "4e5d6f7ec3833c0da9cf34fa5c53c6058c5908b6",
        "7ebd467551ed6ae200d7835a84bbda0dcadaa511"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu May 06 10:56:07 2010 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu May 06 10:56:07 2010 +1000"
      },
      "message": "Merge branch \u0027master\u0027 into next\n"
    },
    {
      "commit": "fcaaade1db63bb2d6f7611d7824eb50d2f07a546",
      "tree": "9091dbdd0c9bd1e3af9ece6f5cce5c0d6c258253",
      "parents": [
        "cb84aa9b42b506299e5aea1ba4da26c03ab12877"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Wed Apr 28 15:57:57 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Apr 29 08:58:45 2010 +1000"
      },
      "message": "selinux: generalize disabling of execmem for plt-in-heap archs\n\nOn Tue, 2010-04-27 at 11:47 -0700, David Miller wrote:\n\u003e From: \"Tom \\\"spot\\\" Callaway\" \u003ctcallawa@redhat.com\u003e\n\u003e Date: Tue, 27 Apr 2010 14:20:21 -0400\n\u003e\n\u003e \u003e [root@apollo ~]$ cat /proc/2174/maps\n\u003e \u003e 00010000-00014000 r-xp 00000000 fd:00 15466577\n\u003e \u003e  /sbin/mingetty\n\u003e \u003e 00022000-00024000 rwxp 00002000 fd:00 15466577\n\u003e \u003e  /sbin/mingetty\n\u003e \u003e 00024000-00046000 rwxp 00000000 00:00 0\n\u003e \u003e  [heap]\n\u003e\n\u003e SELINUX probably barfs on the executable heap, the PLT is in the HEAP\n\u003e just like powerpc32 and that\u0027s why VM_DATA_DEFAULT_FLAGS has to set\n\u003e both executable and writable.\n\u003e\n\u003e You also can\u0027t remove the CONFIG_PPC32 ifdefs in selinux, since\n\u003e because of the VM_DATA_DEFAULT_FLAGS setting used still in that arch,\n\u003e the heap will always have executable permission, just like sparc does.\n\u003e You have to support those binaries forever, whether you like it or not.\n\u003e\n\u003e Let\u0027s just replace the CONFIG_PPC32 ifdef in SELINUX with CONFIG_PPC32\n\u003e || CONFIG_SPARC as in Tom\u0027s original patch and let\u0027s be done with\n\u003e this.\n\u003e\n\u003e In fact I would go through all the arch/ header files and check the\n\u003e VM_DATA_DEFAULT_FLAGS settings and add the necessary new ifdefs to the\n\u003e SELINUX code so that other platforms don\u0027t have the pain of having to\n\u003e go through this process too.\n\nTo avoid maintaining per-arch ifdefs, it seems that we could just\ndirectly use (VM_DATA_DEFAULT_FLAGS \u0026 VM_EXEC) as the basis for deciding\nwhether to enable or disable these checks.   VM_DATA_DEFAULT_FLAGS isn\u0027t\nconstant on some architectures but instead depends on\ncurrent-\u003epersonality, but we want this applied uniformly.  So we\u0027ll just\nuse the initial task state to determine whether or not to enable these\nchecks.\n\nSigned-off-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "cb84aa9b42b506299e5aea1ba4da26c03ab12877",
      "tree": "af646c3d148f5c04f7362c8bddc59b8518cafd9e",
      "parents": [
        "b03df87d119f50715891dcc09e487f6ae5c029f1"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Apr 27 17:20:38 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Apr 28 08:51:12 2010 +1000"
      },
      "message": "LSM Audit: rename LSM_AUDIT_NO_AUDIT to LSM_AUDIT_DATA_NONE\n\nMost of the LSM common audit work uses LSM_AUDIT_DATA_* for the naming.\nThis was not so for LSM_AUDIT_NO_AUDIT which means the generic initializer\ncannot be used.  This patch just renames the flag so the generic\ninitializer can be used.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "a200005038955057063fc8ea82129ebc785df41c",
      "tree": "712fdedac2d15290cdbe7b8adc02cce844fde9f0",
      "parents": [
        "6f262d8e1acb7b1605b811700326163fa707d355"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Apr 20 10:29:42 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Apr 21 08:58:49 2010 +1000"
      },
      "message": "SELinux: return error codes on policy load failure\n\npolicy load failure always return EINVAL even if the failure was for some\nother reason (usually ENOMEM).  This patch passes error codes back up the\nstack where they will make their way to userspace.  This might help in\ndebugging future problems with policy load.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6c9ff1013b7a21099da838eeef7c3f23ee347957",
      "tree": "38fb14055ae1dcae110f0f77a959d9584e2466a0",
      "parents": [
        "2ba3abd8186f24c7fb418927025b4e2120e3a362"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Mon Mar 15 10:42:11 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Apr 15 09:26:01 2010 +1000"
      },
      "message": "SELinux: Reduce max avtab size to avoid page allocation failures\n\nReduce MAX_AVTAB_HASH_BITS so that the avtab allocation is an order 2\nallocation rather than an order 4 allocation on x86_64.  This\naddresses reports of page allocation failures:\nhttp://marc.info/?l\u003dselinux\u0026m\u003d126757230625867\u0026w\u003d2\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d570433\n\nReported-by:  Russell Coker \u003crussell@coker.com.au\u003e\nSigned-off-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "c1a7368a6f0b18b10fdec87972da680ebdf03794",
      "tree": "17a8d306fe2332093e0e11e5fbb03199df011037",
      "parents": [
        "e2902eb79fdea3c3bf679a8f15f3432b393cb2c0"
      ],
      "author": {
        "name": "wzt.wzt@gmail.com",
        "email": "wzt.wzt@gmail.com",
        "time": "Fri Apr 09 19:30:29 2010 +0800"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Apr 09 15:13:48 2010 +1000"
      },
      "message": "Security: Fix coding style in security/\n\nFix coding style in security/\n\nSigned-off-by: Zhitong Wang \u003czhitong.wangzt@alibaba-inc.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "dd3e7836bfe093fc611f715c323cf53be9252b27",
      "tree": "5e789062f3b74ed7c0ec370785eba234ee1ff472",
      "parents": [
        "d25d6fa1a95f465ff1ec4458ca15e30b2c8dffec"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Apr 07 15:08:46 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Apr 08 09:17:02 2010 +1000"
      },
      "message": "selinux: always call sk_security_struct sksec\n\ntrying to grep everything that messes with a sk_security_struct isn\u0027t easy\nsince we don\u0027t always call it sksec.  Just rename everything sksec.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "d25d6fa1a95f465ff1ec4458ca15e30b2c8dffec",
      "tree": "7362b182dedd825fc762ef7706830837e42943af",
      "parents": [
        "225a9be24d799aa16d543c31fb09f0c9ed1d9caa",
        "2eaa9cfdf33b8d7fb7aff27792192e0019ae8fc6"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Mar 31 08:39:27 2010 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Mar 31 08:39:27 2010 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "77c160e7798b4141a0705c734397a9236bb0e726",
      "tree": "e163a4f3fac4fa6f6419d95bcdf78e842d510089",
      "parents": [
        "a19c5bbefb37ebe22fb42bd3861a8d3b2a2652a1"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Mon Mar 15 10:42:11 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 16 08:31:02 2010 +1100"
      },
      "message": "SELinux: Reduce max avtab size to avoid page allocation failures\n\nReduce MAX_AVTAB_HASH_BITS so that the avtab allocation is an order 2\nallocation rather than an order 4 allocation on x86_64.  This\naddresses reports of page allocation failures:\nhttp://marc.info/?l\u003dselinux\u0026m\u003d126757230625867\u0026w\u003d2\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d570433\n\nReported-by:  Russell Coker \u003crussell@coker.com.au\u003e\nSigned-off-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "c43a7523470dc2d9947fa114a0b54317975d4c04",
      "tree": "30a72ed1e9079f19b814263197761820f57c39ce",
      "parents": [
        "eaa5eec739637f32f8733d528ff0b94fd62b1214",
        "634a539e16bd7a1ba31c3f832baa725565cc9f96"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 09 12:46:47 2010 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 09 12:46:47 2010 +1100"
      },
      "message": "Merge branch \u0027next-queue\u0027 into next\n"
    },
    {
      "commit": "318ae2edc3b29216abd8a2510f3f80b764f06858",
      "tree": "ce595adde342f57f379d277b25e4dd206988a052",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176",
        "3e58974027b04e84f68b964ef368a6cd758e2f84"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\tDocumentation/filesystems/proc.txt\n\tarch/arm/mach-u300/include/mach/debug-macro.S\n\tdrivers/net/qlge/qlge_ethtool.c\n\tdrivers/net/qlge/qlge_main.c\n\tdrivers/net/typhoon.c\n"
    },
    {
      "commit": "634a539e16bd7a1ba31c3f832baa725565cc9f96",
      "tree": "cdc26f167c3a2764fecdf3427b2303d28bf05671",
      "parents": [
        "c8563473c1259f5686ceb918c548c80132089f79"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Mar 04 21:59:03 2010 -0800"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Mar 08 09:33:53 2010 +1100"
      },
      "message": "selinux: const strings in tables\n\nSeveral places strings tables are used that should be declared\nconst.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "06b9b72df43800b9ae4e77202c8bf5848c9d6998",
      "tree": "8618aedcf68de0193924b8e6c44d010c382c85b9",
      "parents": [
        "dbba541f9d9bd2c200041bc1b37c59dbaf9beb75"
      ],
      "author": {
        "name": "wzt.wzt@gmail.com",
        "email": "wzt.wzt@gmail.com",
        "time": "Wed Mar 03 21:29:37 2010 +0800"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Mar 04 08:51:06 2010 +1100"
      },
      "message": "Selinux: Remove unused headers skbuff.h in selinux/nlmsgtab.c\n\nskbuff.h is already included by netlink.h, so remove it.\n\nSigned-off-by: Zhitong Wang \u003czhitong.wangzt@alibaba-inc.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "dbba541f9d9bd2c200041bc1b37c59dbaf9beb75",
      "tree": "1f359b8f354759296d625f783ea32f4de9bfb399",
      "parents": [
        "31637b55b09753de9d5e24afc3a1d7fbdb2108d8"
      ],
      "author": {
        "name": "wzt.wzt@gmail.com",
        "email": "wzt.wzt@gmail.com",
        "time": "Tue Mar 02 17:03:43 2010 +0800"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Mar 03 09:22:16 2010 +1100"
      },
      "message": "Selinux: Remove unused headers slab.h in selinux/ss/symtab.c\n\nslab.h is unused in symtab.c, so remove it.\n\nSigned-off-by: Zhitong Wang \u003czhitong.wangzt@alibaba-inc.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "31637b55b09753de9d5e24afc3a1d7fbdb2108d8",
      "tree": "92ab84b8a40aad0d1ec3f423a82033ebc8dce10a",
      "parents": [
        "b380de9e54ec354ccac55fd9a611ffe28b4daa76"
      ],
      "author": {
        "name": "wzt.wzt@gmail.com",
        "email": "wzt.wzt@gmail.com",
        "time": "Tue Mar 02 15:08:58 2010 +0800"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Mar 03 09:20:57 2010 +1100"
      },
      "message": "Selinux: Remove unused headers list.h in selinux/netlink.c\n\nlist.h is unused in netlink.c, so remove it.\n\nSigned-off-by: Zhitong Wang \u003czhitong.wangzt@alibaba-inc.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b4ccebdd37ff70d349321a198f416ba737a5e833",
      "tree": "275d717070346722c3aacd8355fb4f743216e03b",
      "parents": [
        "30ff056c42c665b9ea535d8515890857ae382540",
        "ef57471a73b67a7b65fd8708fd55c77cb7c619af"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Mar 01 09:36:31 2010 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Mar 01 09:36:31 2010 +1100"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "ef57471a73b67a7b65fd8708fd55c77cb7c619af",
      "tree": "0cb8f8dea197999d79bf69d192719be69cd36244",
      "parents": [
        "1fcdc7c527010b144d3951f9ce25faedf264933c"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Feb 26 01:56:16 2010 +0000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 26 14:54:23 2010 +1100"
      },
      "message": "SELinux: Make selinux_kernel_create_files_as() shouldn\u0027t just always return 0\n\nMake selinux_kernel_create_files_as() return an error when it gets one, rather\nthan unconditionally returning 0.\n\nWithout this, cachefiles doesn\u0027t return an error if the SELinux policy doesn\u0027t\nlet it create files with the label of the directory at the base of the cache.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "c36f74e67fa12202dbcb4ad92c5ac844f9d36b98",
      "tree": "13cf4be470470b32ce348202ab4ba6a342c39ed9",
      "parents": [
        "baac35c4155a8aa826c70acee6553368ca5243a2"
      ],
      "author": {
        "name": "Joshua Roys",
        "email": "joshua.roys@gtri.gatech.edu",
        "time": "Wed Feb 24 18:52:44 2010 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 25 17:49:20 2010 +1100"
      },
      "message": "netlabel: fix export of SELinux categories \u003e 127\n\nThis fixes corrupted CIPSO packets when SELinux categories greater than 127\nare used.  The bug occured on the second (and later) loops through the\nwhile; the inner for loop through the ebitmap-\u003emaps array used the same\nindex as the NetLabel catmap-\u003ebitmap array, even though the NetLabel bitmap\nis twice as long as the SELinux bitmap.\n\nSigned-off-by: Joshua Roys \u003cjoshua.roys@gtri.gatech.edu\u003e\nAcked-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "189b3b1c89761054fee3438f063d7f257306e2d8",
      "tree": "8099352fa731fca91b95d862ac0d7199f21ca54d",
      "parents": [
        "2ae3ba39389b51d8502123de0a59374bec899c4d"
      ],
      "author": {
        "name": "wzt.wzt@gmail.com",
        "email": "wzt.wzt@gmail.com",
        "time": "Tue Feb 23 23:15:28 2010 +0800"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Feb 24 08:11:02 2010 +1100"
      },
      "message": "Security: add static to security_ops and default_security_ops variable\n\nEnhance the security framework to support resetting the active security\nmodule. This eliminates the need for direct use of the security_ops and\ndefault_security_ops variables outside of security.c, so make security_ops\nand default_security_ops static. Also remove the secondary_ops variable as\na cleanup since there is no use for that. secondary_ops was originally used by\nSELinux to call the \"secondary\" security module (capability or dummy),\nbut that was replaced by direct calls to capability and the only\nremaining use is to save and restore the original security ops pointer\nvalue if SELinux is disabled by early userspace based on /etc/selinux/config.\nFurther, if we support this directly in the security framework, then we can\njust use \u0026default_security_ops for this purpose since that is now available.\n\nSigned-off-by: Zhitong Wang \u003czhitong.wangzt@alibaba-inc.com\u003e\nAcked-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "2ae3ba39389b51d8502123de0a59374bec899c4d",
      "tree": "54c552fa9fa6c17b769f6aca3fd438e542b504a4",
      "parents": [
        "170800088666963de1111d62fb503889c8c82eda"
      ],
      "author": {
        "name": "KaiGai Kohei",
        "email": "kaigai@ak.jp.nec.com",
        "time": "Wed Feb 17 08:49:41 2010 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Feb 22 08:27:41 2010 +1100"
      },
      "message": "selinux: libsepol: remove dead code in check_avtab_hierarchy_callback()\n\nThis patch revert the commit of 7d52a155e38d5a165759dbbee656455861bf7801\nwhich removed a part of type_attribute_bounds_av as a dead code.\nHowever, at that time, we didn\u0027t find out the target side boundary allows\nto handle some of pseudo /proc/\u003cpid\u003e/* entries with its process\u0027s security\ncontext well.\n\nSigned-off-by: KaiGai Kohei \u003ckaigai@ak.jp.nec.com\u003e\nAcked-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\n\n--\n security/selinux/ss/services.c |   43 ++++++++++++++++++++++++++++++++++++---\n 1 files changed, 39 insertions(+), 4 deletions(-)\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "2da5d31bc72d0a36dc16af7f5d5baa4f86df9c76",
      "tree": "9d5bd3cc7d9e5b1beecc954bb5337af8454d352d",
      "parents": [
        "97d6931ead3e89a764cdaa3ad0924037367f0d34"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Feb 16 17:29:06 2010 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Feb 16 17:29:06 2010 +1100"
      },
      "message": "security: fix a couple of sparse warnings\n\nFix a couple of sparse warnings for callers of\ncontext_struct_to_string, which takes a *u32, not an *int.\n\nThese cases are harmless as the values are not used.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: KaiGai Kohei \u003ckaigai@ak.jp.nec.com\u003e\n"
    },
    {
      "commit": "8007f10259d04f37044c2c731bf9ccdd9161d825",
      "tree": "6accff6b70b4780bc62824c419582f4cace56f23",
      "parents": [
        "ea13ddbad0eb4be9cdc406cd7e0804fa4011f6e4"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Tue Feb 09 08:22:24 2010 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Feb 09 08:22:24 2010 +1100"
      },
      "message": "selinux: fix memory leak in sel_make_bools\n\nIn sel_make_bools, kernel allocates memory for bool_pending_names[i]\nwith security_get_bools. So if we just free bool_pending_names, those\nmemories for bool_pending_names[i] will be leaked.\n\nThis patch resolves dozens of following kmemleak report after resuming\nfrom suspend:\nunreferenced object 0xffff88022e4c7380 (size 32):\n  comm \"init\", pid 1, jiffies 4294677173\n  backtrace:\n    [\u003cffffffff810f76b5\u003e] create_object+0x1a2/0x2a9\n    [\u003cffffffff810f78bb\u003e] kmemleak_alloc+0x26/0x4b\n    [\u003cffffffff810ef3eb\u003e] __kmalloc+0x18f/0x1b8\n    [\u003cffffffff811cd511\u003e] security_get_bools+0xd7/0x16f\n    [\u003cffffffff811c48c0\u003e] sel_write_load+0x12e/0x62b\n    [\u003cffffffff810f9a39\u003e] vfs_write+0xae/0x10b\n    [\u003cffffffff810f9b56\u003e] sys_write+0x4a/0x6e\n    [\u003cffffffff81011b82\u003e] system_call_fastpath+0x16/0x1b\n    [\u003cffffffffffffffff\u003e] 0xffffffffffffffff\n\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6382dc334064bb0b41a95df0e3c438de35f2ffb7",
      "tree": "e58a375af2352638eb5930bfd79c9a893b35e484",
      "parents": [
        "fb637f3cd31783db2b654842ea32ffec15c4bd62"
      ],
      "author": {
        "name": "Justin P. Mattock",
        "email": "justinmattock@gmail.com",
        "time": "Thu Jan 14 23:03:18 2010 -0800"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Feb 05 12:22:35 2010 +0100"
      },
      "message": "fix comment typos in avc.c\n\nSigned-off-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "d78ca3cd733d8a2c3dcd88471beb1a15d973eed8",
      "tree": "a27ccf86f5f7df3cc987d0203ed0bff2db46db57",
      "parents": [
        "002345925e6c45861f60db6f4fc6236713fd8847"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "kees.cook@canonical.com",
        "time": "Wed Feb 03 15:37:13 2010 -0800"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 04 14:20:41 2010 +1100"
      },
      "message": "syslog: use defined constants instead of raw numbers\n\nRight now the syslog \"type\" action are just raw numbers which makes\nthe source difficult to follow.  This patch replaces the raw numbers\nwith defined constants for some level of sanity.\n\nSigned-off-by: Kees Cook \u003ckees.cook@canonical.com\u003e\nAcked-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "002345925e6c45861f60db6f4fc6236713fd8847",
      "tree": "d7849eafe1755116597166bbebf43e2bee86cb76",
      "parents": [
        "0719aaf5ead7555b7b7a4a080ebf2826a871384e"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "kees.cook@canonical.com",
        "time": "Wed Feb 03 15:36:43 2010 -0800"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 04 14:20:12 2010 +1100"
      },
      "message": "syslog: distinguish between /proc/kmsg and syscalls\n\nThis allows the LSM to distinguish between syslog functions originating\nfrom /proc/kmsg access and direct syscalls.  By default, the commoncaps\nwill now no longer require CAP_SYS_ADMIN to read an opened /proc/kmsg\nfile descriptor.  For example the kernel syslog reader can now drop\nprivileges after opening /proc/kmsg, instead of staying privileged with\nCAP_SYS_ADMIN.  MAC systems that implement security_syslog have unchanged\nbehavior.\n\nSigned-off-by: Kees Cook \u003ckees.cook@canonical.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: John Johansen \u003cjohn.johansen@canonical.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "0719aaf5ead7555b7b7a4a080ebf2826a871384e",
      "tree": "19c0b16b1013d84a8b8092737d38e60f3dd7e939",
      "parents": [
        "42596eafdd75257a640f64701b9b07090bcd84b0"
      ],
      "author": {
        "name": "Guido Trentalancia",
        "email": "guido@trentalancia.com",
        "time": "Wed Feb 03 16:40:20 2010 +0100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 04 09:06:36 2010 +1100"
      },
      "message": "selinux: allow MLS-\u003enon-MLS and vice versa upon policy reload\n\nAllow runtime switching between different policy types (e.g. from a MLS/MCS\npolicy to a non-MLS/non-MCS policy or viceversa).\n\nSigned-off-by: Guido Trentalancia \u003cguido@trentalancia.com\u003e\nAcked-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "42596eafdd75257a640f64701b9b07090bcd84b0",
      "tree": "d5c4eb801d70ddd00a7a03814833d99cabf38962",
      "parents": [
        "b6cac5a30b325e14cda425670bb3568d3cad0aa8"
      ],
      "author": {
        "name": "Guido Trentalancia",
        "email": "guido@trentalancia.com",
        "time": "Wed Feb 03 17:06:01 2010 +0100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 04 08:48:17 2010 +1100"
      },
      "message": "selinux: load the initial SIDs upon every policy load\n\nAlways load the initial SIDs, even in the case of a policy\nreload and not just at the initial policy load. This comes\nparticularly handy after the introduction of a recent\npatch for enabling runtime switching between different\npolicy types, although this patch is in theory independent\nfrom that feature.\n\nSigned-off-by: Guido Trentalancia \u003cguido@trentalancia.com\u003e\nAcked-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b6cac5a30b325e14cda425670bb3568d3cad0aa8",
      "tree": "276a3a2a985c862ac9439cb2f8facabb7d1f1944",
      "parents": [
        "8e2d39a1665e680c095545993aac2fcac6916eb9"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Tue Feb 02 11:31:51 2010 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Feb 03 08:49:10 2010 +1100"
      },
      "message": "selinux: Only audit permissions specified in policy\n\nOnly audit the permissions specified by the policy rules.\n\nBefore:\ntype\u003dAVC msg\u003daudit(01/28/2010 14:30:46.690:3250) : avc:  denied  { read\nappend } for  pid\u003d14092 comm\u003dfoo name\u003dtest_file dev\u003ddm-1 ino\u003d132932\nscontext\u003dunconfined_u:unconfined_r:load_policy_t:s0-s0:c0.c1023\ntcontext\u003dunconfined_u:object_r:rpm_tmp_t:s0 tclass\u003dfile\n\nAfter:\ntype\u003dAVC msg\u003daudit(01/28/2010 14:52:37.448:26) : avc:  denied\n{ append } for  pid\u003d1917 comm\u003dfoo name\u003dtest_file dev\u003ddm-1 ino\u003d132932\nscontext\u003dunconfined_u:unconfined_r:load_policy_t:s0-s0:c0.c1023\ntcontext\u003dunconfined_u:object_r:rpm_tmp_t:s0 tclass\u003dfile\n\nReference:\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d558499\n\nReported-by: Tom London \u003cselinux@gmail.com\u003e\nSigned-off-by: Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "7d52a155e38d5a165759dbbee656455861bf7801",
      "tree": "7b071cde283e98465744b5abb2c6140b9b6afcda",
      "parents": [
        "2f3e82d694d3d7a2db019db1bb63385fbc1066f3"
      ],
      "author": {
        "name": "KaiGai Kohei",
        "email": "kaigai@ak.jp.nec.com",
        "time": "Thu Jan 21 15:00:15 2010 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Jan 25 08:31:38 2010 +1100"
      },
      "message": "selinux: remove dead code in type_attribute_bounds_av()\n\nThis patch removes dead code in type_attribute_bounds_av().\n\nDue to the historical reason, the type boundary feature is delivered\nfrom hierarchical types in libsepol, it has supported boundary features\nboth of subject type (domain; in most cases) and target type.\n\nHowever, we don\u0027t have any actual use cases in bounded target types,\nand it tended to make conceptual confusion.\nSo, this patch removes the dead code to apply boundary checks on the\ntarget types. I makes clear the TYPEBOUNDS restricts privileges of\na certain domain bounded to any other domain.\n\nSigned-off-by: KaiGai Kohei \u003ckaigai@ak.jp.nec.com\u003e\nAcked-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\n\n--\n security/selinux/ss/services.c |   43 +++------------------------------------\n 1 files changed, 4 insertions(+), 39 deletions(-)\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "2f3e82d694d3d7a2db019db1bb63385fbc1066f3",
      "tree": "9d99a883eb2ab097a3ff1ee4e1c9bf2fa851d832",
      "parents": [
        "2457552d1e6f3183cd93f81c49a8da5fe8bb0e42"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Thu Jan 07 15:55:16 2010 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Jan 25 08:29:05 2010 +1100"
      },
      "message": "selinux: convert range transition list to a hashtab\n\nPer https://bugzilla.redhat.com/show_bug.cgi?id\u003d548145\nthere are sufficient range transition rules in modern (Fedora) policy to\nmake mls_compute_sid a significant factor on the shmem file setup path\ndue to the length of the range_tr list.  Replace the simple range_tr\nlist with a hashtab inside the security server to help mitigate this\nproblem.\n\nSigned-off-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "2457552d1e6f3183cd93f81c49a8da5fe8bb0e42",
      "tree": "7ca46caa910012d75617700e4083b3657053cb31",
      "parents": [
        "19439d05b88dafc4e55d9ffce84ccc27cf8b2bcc",
        "6ccf80eb15ccaca4d3f1ab5162b9ded5eecd9971"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Jan 18 09:56:22 2010 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Jan 18 09:56:22 2010 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n"
    },
    {
      "commit": "19439d05b88dafc4e55d9ffce84ccc27cf8b2bcc",
      "tree": "e529e1bbba49f30684c3b88a67df1d62ba3e11b1",
      "parents": [
        "8d9525048c74786205b99f3fcd05a839721edfb7"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Thu Jan 14 17:28:10 2010 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Jan 18 09:54:26 2010 +1100"
      },
      "message": "selinux: change the handling of unknown classes\n\nIf allow_unknown\u003d\u003ddeny, SELinux treats an undefined kernel security\nclass as an error condition rather than as a typical permission denial\nand thus does not allow permissions on undefined classes even when in\npermissive mode.  Change the SELinux logic so that this case is handled\nas a typical permission denial, subject to the usual permissive mode and\npermissive domain handling.\n\nAlso drop the \u0027requested\u0027 argument from security_compute_av() and\nhelpers as it is a legacy of the original security server interface and\nis unused.\n\nChanges:\n- Handle permissive domains consistently by moving up the test for a\npermissive domain.\n- Make security_compute_av_user() consistent with security_compute_av();\nthe only difference now is that security_compute_av() performs mapping\nbetween the kernel-private class and permission indices and the policy\nvalues.  In the userspace case, this mapping is handled by libselinux.\n- Moved avd_init inside the policy lock.\n\nBased in part on a patch by Paul Moore \u003cpaul.moore@hp.com\u003e.\n\nReported-by: Andrew Worsley \u003camworsley@gmail.com\u003e\nSigned-off-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nReviewed-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "17740d89785aeb4143770923d67c293849414710",
      "tree": "58f332b0eb828017eb4571e2f7323e859b6c268d",
      "parents": [
        "45d28b097280a78893ce25a5d0db41e6a2717853"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Fri Aug 28 10:47:16 2009 +0200"
      },
      "committer": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Mon Jan 04 11:27:18 2010 +0100"
      },
      "message": "SECURITY: selinux, fix update_rlimit_cpu parameter\n\nDon\u0027t pass current RLIMIT_RTTIME to update_rlimit_cpu() in\nselinux_bprm_committing_creds, since update_rlimit_cpu expects\nRLIMIT_CPU limit.\n\nUse proper rlim[RLIMIT_CPU].rlim_cur instead to fix that.\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: Eric Paris \u003ceparis@parisplace.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "4ef58d4e2ad1fa2a3e5bbf41af2284671fca8cf8",
      "tree": "856ba96302a36014736747e8464f80eeb827bbdd",
      "parents": [
        "f6c4c8195b5e7878823caa1181be404d9e86d369",
        "d014d043869cdc591f3a33243d3481fa4479c2d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (42 commits)\n  tree-wide: fix misspelling of \"definition\" in comments\n  reiserfs: fix misspelling of \"journaled\"\n  doc: Fix a typo in slub.txt.\n  inotify: remove superfluous return code check\n  hdlc: spelling fix in find_pvc() comment\n  doc: fix regulator docs cut-and-pasteism\n  mtd: Fix comment in Kconfig\n  doc: Fix IRQ chip docs\n  tree-wide: fix assorted typos all over the place\n  drivers/ata/libata-sff.c: comment spelling fixes\n  fix typos/grammos in Documentation/edac.txt\n  sysctl: add missing comments\n  fs/debugfs/inode.c: fix comment typos\n  sgivwfb: Make use of ARRAY_SIZE.\n  sky2: fix sky2_link_down copy/paste comment error\n  tree-wide: fix typos \"couter\" -\u003e \"counter\"\n  tree-wide: fix typos \"offest\" -\u003e \"offset\"\n  fix kerneldoc for set_irq_msi()\n  spidev: fix double \"of of\" in comment\n  comment typo fix: sybsystem -\u003e subsystem\n  ...\n"
    },
    {
      "commit": "1ad1f10cd915744bbe52b19423653b38287d827d",
      "tree": "ae072aace36b45a55d80b8cbf1b6d92523a88ea0",
      "parents": [
        "08e3daff217059c84c360cc71212686e0a7995af",
        "2b876f95d03e226394b5d360c86127cbefaf614b"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Dec 09 19:01:03 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Dec 09 19:01:03 2009 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n"
    },
    {
      "commit": "08e3daff217059c84c360cc71212686e0a7995af",
      "tree": "ac2dd60ab2309a82b72e57f15fef72401f5102d1",
      "parents": [
        "937bf6133b21b16965f75223085f4314ae32b8eb"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Thu Dec 03 03:48:28 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Dec 08 14:58:11 2009 +1100"
      },
      "message": "selinux: remove a useless return\n\nThe last return is unreachable, remove the \u0027return\u0027\nin default, let it fall through.\n\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "9f59f90bf57cff8be07faddc608c400b6e7c5d05",
      "tree": "621e4fa6dae193b3427913a1945eee473f47b153",
      "parents": [
        "6ec22f9b037fc0c2e00ddb7023fad279c365324d"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Sun Dec 06 10:16:51 2009 +0100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Dec 08 14:57:54 2009 +1100"
      },
      "message": "security/selinux/ss: correct size computation\n\nThe size argument to kcalloc should be the size of desired structure,\nnot the pointer to it.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@expression@\nexpression *x;\n@@\n\nx \u003d\n \u003c+...\n-sizeof(x)\n+sizeof(*x)\n...+\u003e// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "d014d043869cdc591f3a33243d3481fa4479c2d0",
      "tree": "63626829498e647ba058a1ce06419fe7e4d5f97d",
      "parents": [
        "6ec22f9b037fc0c2e00ddb7023fad279c365324d",
        "6070d81eb5f2d4943223c96e7609a53cdc984364"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Dec 07 18:36:35 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Dec 07 18:36:35 2009 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\n\tkernel/irq/chip.c\n"
    },
    {
      "commit": "28b4d5cc17c20786848cdc07b7ea237a309776bb",
      "tree": "bae406a4b17229dcce7c11be5073f7a67665e477",
      "parents": [
        "d29cecda036f251aee4947f47eea0fe9ed8cc931",
        "96fa2b508d2d3fe040cf4ef2fffb955f0a537ea1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Dec 05 15:22:26 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Dec 05 15:22:26 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n\nConflicts:\n\tdrivers/net/pcmcia/fmvj18x_cs.c\n\tdrivers/net/pcmcia/nmclan_cs.c\n\tdrivers/net/pcmcia/xirc2ps_cs.c\n\tdrivers/net/wireless/ray_cs.c\n"
    },
    {
      "commit": "af901ca181d92aac3a7dc265144a9081a86d8f39",
      "tree": "380054af22521144fbe1364c3bcd55ad24c9bde4",
      "parents": [
        "972b94ffb90ea6d20c589d9a47215df103388ddd"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Nov 14 13:09:05 2009 -0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:55 2009 +0100"
      },
      "message": "tree-wide: fix assorted typos all over the place\n\nThat is \"success\", \"unknown\", \"through\", \"performance\", \"[re|un]mapping\"\n, \"access\", \"default\", \"reasonable\", \"[con]currently\", \"temperature\"\n, \"channel\", \"[un]used\", \"application\", \"example\",\"hierarchy\", \"therefore\"\n, \"[over|under]flow\", \"contiguous\", \"threshold\", \"enough\" and others.\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "0bce95279909aa4cc401a2e3140b4295ca22e72a",
      "tree": "5b98e4ebe7ef30fa1edf627c79501c531b346a8b",
      "parents": [
        "c4a5af54c8ef277a59189fc9358e190f3c1b8206"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Mon Nov 23 16:47:23 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Nov 24 14:30:49 2009 +1100"
      },
      "message": "SELinux: print denials for buggy kernel with unknown perms\n\nHistorically we\u0027ve seen cases where permissions are requested for classes\nwhere they do not exist.  In particular we have seen CIFS forget to set\ni_mode to indicate it is a directory so when we later check something like\nremove_name we have problems since it wasn\u0027t defined in tclass file.  This\nused to result in a avc which included the permission 0x2000 or something.\nCurrently the kernel will deny the operations (good thing) but will not\nprint ANY information (bad thing).  First the auditdeny field is no\nextended to include unknown permissions.  After that is fixed the logic in\navc_dump_query to output this information isn\u0027t right since it will remove\nthe permission from the av and print the phrase \"\u003cNULL\u003e\".  This takes us\nback to the behavior before the classmap rewrite.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "8964be4a9a5ca8cab1219bb046db2f6d1936227c",
      "tree": "8838c73a03cc69c010b55928fce3725d17bc26a9",
      "parents": [
        "fa9a6fed87df1b50804405e700f8d30251d3aaf1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Nov 20 15:35:04 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 20 15:35:04 2009 -0800"
      },
      "message": "net: rename skb-\u003eiif to skb-\u003eskb_iif\n\nTo help grep games, rename iif to skb_iif\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dd8dbf2e6880e30c00b18600c962d0cb5a03c555",
      "tree": "24835aaf40cec5ceb2aeecccde9240ee173f70f1",
      "parents": [
        "6e65f92ff0d6f18580737321718d09035085a3fb"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Nov 03 16:35:32 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Nov 10 09:33:46 2009 +1100"
      },
      "message": "security: report the module name to security_module_request\n\nFor SELinux to do better filtering in userspace we send the name of the\nmodule along with the AVC denial when a program is denied module_request.\n\nExample output:\n\ntype\u003dSYSCALL msg\u003daudit(11/03/2009 10:59:43.510:9) : arch\u003dx86_64 syscall\u003dwrite success\u003dyes exit\u003d2 a0\u003d3 a1\u003d7fc28c0d56c0 a2\u003d2 a3\u003d7fffca0d7440 items\u003d0 ppid\u003d1727 pid\u003d1729 auid\u003dunset uid\u003droot gid\u003droot euid\u003droot suid\u003droot fsuid\u003droot egid\u003droot sgid\u003droot fsgid\u003droot tty\u003d(none) ses\u003dunset comm\u003drpc.nfsd exe\u003d/usr/sbin/rpc.nfsd subj\u003dsystem_u:system_r:nfsd_t:s0 key\u003d(null)\ntype\u003dAVC msg\u003daudit(11/03/2009 10:59:43.510:9) : avc:  denied  { module_request } for  pid\u003d1729 comm\u003drpc.nfsd kmod\u003d\"net-pf-10\" scontext\u003dsystem_u:system_r:nfsd_t:s0 tcontext\u003dsystem_u:system_r:kernel_t:s0 tclass\u003dsystem\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6e8e16c7bc298d7887584c3d027e05db3e86eed9",
      "tree": "355403813b5945a5a5fdd24054a76a446d05b206",
      "parents": [
        "3e1c2515acf70448cad1ae3ab835ca80be043d33"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 22 15:38:26 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sat Oct 24 09:42:27 2009 +0800"
      },
      "message": "SELinux: add .gitignore files for dynamic classes\n\nThe SELinux dynamic class work in c6d3aaa4e35c71a32a86ececacd4eea7ecfc316c\ncreates a number of dynamic header files and scripts.  Add .gitignore files\nso git doesn\u0027t complain about these.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b7f3008ad1d795935551e4dd810b0255a7bfa3c9",
      "tree": "1933b20fd16d30f6f9b3043ee6a66f0ddedb4009",
      "parents": [
        "825332e4ff1373c55d931b49408df7ec2298f71e"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Mon Oct 19 10:08:50 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Oct 20 09:22:07 2009 +0900"
      },
      "message": "SELinux: fix locking issue introduced with c6d3aaa4e35c71a3\n\nEnsure that we release the policy read lock on all exit paths from\nsecurity_compute_av.\n\nSigned-off-by:  Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "941fc5b2bf8f7dd1d0a9c502e152fa719ff6578e",
      "tree": "c2f579e6fcc5bee6659527db7ccfb661acfe196c",
      "parents": [
        "8753f6bec352392b52ed9b5e290afb34379f4612"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Thu Oct 01 14:48:23 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Oct 07 21:56:46 2009 +1100"
      },
      "message": "selinux: drop remapping of netlink classes\n\nDrop remapping of netlink classes and bypass of permission checking\nbased on netlink message type for policy version \u003c 18.  This removes\ncompatibility code introduced when the original single netlink\nsecurity class used for all netlink sockets was split into\nfiner-grained netlink classes based on netlink protocol and when\npermission checking was added based on netlink message type in Linux\n2.6.8.  The only known distribution that shipped with SELinux and\npolicy \u003c 18 was Fedora Core 2, which was EOL\u0027d on 2005-04-11.\n\nGiven that the remapping code was never updated to address the\naddition of newer netlink classes, that the corresponding userland\nsupport was dropped in 2005, and that the assumptions made by the\nremapping code about the fixed ordering among netlink classes in the\npolicy may be violated in the future due to the dynamic class/perm\ndiscovery support, we should drop this compatibility code now.\n\nSigned-off-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "8753f6bec352392b52ed9b5e290afb34379f4612",
      "tree": "b5f381be9f56125309bfbfcaa73d68e08c309747",
      "parents": [
        "c6d3aaa4e35c71a32a86ececacd4eea7ecfc316c"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Wed Sep 30 13:41:02 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Oct 07 21:56:44 2009 +1100"
      },
      "message": "selinux: generate flask headers during kernel build\n\nAdd a simple utility (scripts/selinux/genheaders) and invoke it to\ngenerate the kernel-private class and permission indices in flask.h\nand av_permissions.h automatically during the kernel build from the\nsecurity class mapping definitions in classmap.h.  Adding new kernel\nclasses and permissions can then be done just by adding them to classmap.h.\n\nSigned-off-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "c6d3aaa4e35c71a32a86ececacd4eea7ecfc316c",
      "tree": "1a5475b4370655a22670fd6eb35e54d8b131b362",
      "parents": [
        "23acb98de5a4109a60b5fe3f0439389218b039d7"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Wed Sep 30 13:37:50 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Oct 07 21:56:42 2009 +1100"
      },
      "message": "selinux: dynamic class/perm discovery\n\nModify SELinux to dynamically discover class and permission values\nupon policy load, based on the dynamic object class/perm discovery\nlogic from libselinux.  A mapping is created between kernel-private\nclass and permission indices used outside the security server and the\npolicy values used within the security server.\n\nThe mappings are only applied upon kernel-internal computations;\nsimilar mappings for the private indices of userspace object managers\nis handled on a per-object manager basis by the userspace AVC.  The\ninterfaces for compute_av and transition_sid are split for kernel\nvs. userspace; the userspace functions are distinguished by a _user\nsuffix.\n\nThe kernel-private class indices are no longer tied to the policy\nvalues and thus do not need to skip indices for userspace classes;\nthus the kernel class index values are compressed.  The flask.h\ndefinitions were regenerated by deleting the userspace classes from\nrefpolicy\u0027s definitions and then regenerating the headers.  Going\nforward, we can just maintain the flask.h, av_permissions.h, and\nclassmap.h definitions separately from policy as they are no longer\ntied to the policy values.  The next patch introduces a utility to\nautomate generation of flask.h and av_permissions.h from the\nclassmap.h definitions.\n\nThe older kernel class and permission string tables are removed and\nreplaced by a single security class mapping table that is walked at\npolicy load to generate the mapping.  The old kernel class validation\nlogic is completely replaced by the mapping logic.\n\nThe handle unknown logic is reworked.  reject_unknown\u003d1 is handled\nwhen the mappings are computed at policy load time, similar to the old\nhandling by the class validation logic.  allow_unknown\u003d1 is handled\nwhen computing and mapping decisions - if the permission was not able\nto be mapped (i.e. undefined, mapped to zero), then it is\nautomatically added to the allowed vector.  If the class was not able\nto be mapped (i.e. undefined, mapped to zero), then all permissions\nare allowed for it if allow_unknown\u003d1.\n\navc_audit leverages the new security class mapping table to lookup the\nclass and permission names from the kernel-private indices.\n\nThe mdp program is updated to use the new table when generating the\nclass definitions and allow rules for a minimal boot policy for the\nkernel.  It should be noted that this policy will not include any\nuserspace classes, nor will its policy index values for the kernel\nclasses correspond with the ones in refpolicy (they will instead match\nthe kernel-private indices).\n\nSigned-off-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "af8ff04917169805b151280155bf772d3ca9bec0",
      "tree": "1a1ec17d0926b4bbe9f8b243231582dde02ef1f5",
      "parents": [
        "1669b049db50fc7f1d4e694fb115a0f408c63fce"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Sun Sep 20 21:23:01 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Sep 30 19:17:06 2009 +1000"
      },
      "message": "SELinux: reset the security_ops before flushing the avc cache\n\nThis patch resets the security_ops to the secondary_ops before it flushes\nthe avc.  It\u0027s still possible that a task on another processor could have\nalready passed the security_ops dereference and be executing an selinux hook\nfunction which would add a new avc entry.  That entry would still not be\nfreed.  This should however help to reduce the number of needless avcs the\nkernel has when selinux is disabled at run time.  There is no wasted\nmemory if selinux is disabled on the command line or not compiled.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "0b7570e77f7c3abd43107dabc47ea89daf9a1cba",
      "tree": "8dd93b4a189b4e98384d4470a289ecfb7818cc26",
      "parents": [
        "a2322e1d272938d192d8c24cdacf57c0c7a2683f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 23 15:56:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:59 2009 -0700"
      },
      "message": "do_wait() wakeup optimization: change __wake_up_parent() to use filtered wakeup\n\nRatan Nalumasu reported that in a process with many threads doing\nunnecessary wakeups.  Every waiting thread in the process wakes up to loop\nthrough the children and see that the only ones it cares about are still\nnot ready.\n\nNow that we have struct wait_opts we can change do_wait/__wake_up_parent\nto use filtered wakeups.\n\nWe can make child_wait_callback() more clever later, right now it only\nchecks eligible_child().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ratan Nalumasu \u003crnalumasu@gmail.com\u003e\nCc: Vitaly Mayatskikh \u003cvmayatsk@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nTested-by: Valdis Kletnieks \u003cvaldis.kletnieks@vt.edu\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5224ee086321fec78970e2f2805892d2b34e8957",
      "tree": "3b7eef40c92b07ed75d8585c51333b8e87a33a2b",
      "parents": [
        "606531c316d30e9639473a6da09ee917125ab467"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Sun Sep 20 21:21:10 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Sep 23 11:16:20 2009 -0700"
      },
      "message": "SELinux: do not destroy the avc_cache_nodep\n\nThe security_ops reset done when SELinux is disabled at run time is done\nafter the avc cache is freed and after the kmem_cache for the avc is also\nfreed.  This means that between the time the selinux disable code destroys\nthe avc_node_cachep another process could make a security request and could\ntry to allocate from the cache.  We are just going to leave the cachep around,\nlike we always have.\n\nSELinux:  Disabled at runtime.\nBUG: unable to handle kernel NULL pointer dereference at (null)\nIP: [\u003cffffffff81122537\u003e] kmem_cache_alloc+0x9a/0x185\nPGD 0\nOops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC\nlast sysfs file:\nCPU 1\nModules linked in:\nPid: 12, comm: khelper Not tainted 2.6.31-tip-05525-g0eeacc6-dirty #14819\nSystem Product Name\nRIP: 0010:[\u003cffffffff81122537\u003e]  [\u003cffffffff81122537\u003e]\nkmem_cache_alloc+0x9a/0x185\nRSP: 0018:ffff88003f9258b0  EFLAGS: 00010086\nRAX: 0000000000000001 RBX: 0000000000000000 RCX: 0000000078c0129e\nRDX: 0000000000000000 RSI: ffffffff8130b626 RDI: ffffffff81122528\nRBP: ffff88003f925900 R08: 0000000078c0129e R09: 0000000000000001\nR10: 0000000000000000 R11: 0000000078c0129e R12: 0000000000000246\nR13: 0000000000008020 R14: ffff88003f8586d8 R15: 0000000000000001\nFS:  0000000000000000(0000) GS:ffff880002b00000(0000)\nknlGS:0000000000000000\nCS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b\nCR2: 0000000000000000 CR3: 0000000001001000 CR4: 00000000000006e0\nDR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\nDR3: ffffffff827bd420 DR6: 00000000ffff0ff0 DR7: 0000000000000400\nProcess khelper (pid: 12, threadinfo ffff88003f924000, task\nffff88003f928000)\nStack:\n 0000000000000246 0000802000000246 ffffffff8130b626 0000000000000001\n\u003c0\u003e 0000000078c0129e 0000000000000000 ffff88003f925a70 0000000000000002\n\u003c0\u003e 0000000000000001 0000000000000001 ffff88003f925960 ffffffff8130b626\nCall Trace:\n [\u003cffffffff8130b626\u003e] ? avc_alloc_node+0x36/0x273\n [\u003cffffffff8130b626\u003e] avc_alloc_node+0x36/0x273\n [\u003cffffffff8130b545\u003e] ? avc_latest_notif_update+0x7d/0x9e\n [\u003cffffffff8130b8b4\u003e] avc_insert+0x51/0x18d\n [\u003cffffffff8130bcce\u003e] avc_has_perm_noaudit+0x9d/0x128\n [\u003cffffffff8130bf20\u003e] avc_has_perm+0x45/0x88\n [\u003cffffffff8130f99d\u003e] current_has_perm+0x52/0x6d\n [\u003cffffffff8130fbb2\u003e] selinux_task_create+0x2f/0x45\n [\u003cffffffff81303bf7\u003e] security_task_create+0x29/0x3f\n [\u003cffffffff8105c6ba\u003e] copy_process+0x82/0xdf0\n [\u003cffffffff81091578\u003e] ? register_lock_class+0x2f/0x36c\n [\u003cffffffff81091a13\u003e] ? mark_lock+0x2e/0x1e1\n [\u003cffffffff8105d596\u003e] do_fork+0x16e/0x382\n [\u003cffffffff81091578\u003e] ? register_lock_class+0x2f/0x36c\n [\u003cffffffff810d9166\u003e] ? probe_workqueue_execution+0x57/0xf9\n [\u003cffffffff81091a13\u003e] ? mark_lock+0x2e/0x1e1\n [\u003cffffffff810d9166\u003e] ? probe_workqueue_execution+0x57/0xf9\n [\u003cffffffff8100cdb2\u003e] kernel_thread+0x82/0xe0\n [\u003cffffffff81078b1f\u003e] ? ____call_usermodehelper+0x0/0x139\n [\u003cffffffff8100ce10\u003e] ? child_rip+0x0/0x20\n [\u003cffffffff81078aea\u003e] ? __call_usermodehelper+0x65/0x9a\n [\u003cffffffff8107a5c7\u003e] run_workqueue+0x171/0x27e\n [\u003cffffffff8107a573\u003e] ? run_workqueue+0x11d/0x27e\n [\u003cffffffff81078a85\u003e] ? __call_usermodehelper+0x0/0x9a\n [\u003cffffffff8107a7bc\u003e] worker_thread+0xe8/0x10f\n [\u003cffffffff810808e2\u003e] ? autoremove_wake_function+0x0/0x63\n [\u003cffffffff8107a6d4\u003e] ? worker_thread+0x0/0x10f\n [\u003cffffffff8108042e\u003e] kthread+0x91/0x99\n [\u003cffffffff8100ce1a\u003e] child_rip+0xa/0x20\n [\u003cffffffff8100c754\u003e] ? restore_args+0x0/0x30\n [\u003cffffffff8108039d\u003e] ? kthread+0x0/0x99\n [\u003cffffffff8100ce10\u003e] ? child_rip+0x0/0x20\nCode: 0f 85 99 00 00 00 9c 58 66 66 90 66 90 49 89 c4 fa 66 66 90 66 66 90\ne8 83 34 fb ff e8 d7 e9 26 00 48 98 49 8b 94 c6 10 01 00 00 \u003c48\u003e 8b 1a 44\n8b 7a 18 48 85 db 74 0f 8b 42 14 48 8b 04 c3 ff 42\nRIP  [\u003cffffffff81122537\u003e] kmem_cache_alloc+0x9a/0x185\n RSP \u003cffff88003f9258b0\u003e\nCR2: 0000000000000000\n---[ end trace 42f41a982344e606 ]---\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "4e6d0bffd3d72a32b620525c9007d2482c731775",
      "tree": "f4a3ff34e800be74469bec99834780b4a0294dec",
      "parents": [
        "008574b11171a1ee9583a00188e27ff9e0432061"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Sat Sep 12 22:54:23 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Sep 14 12:34:11 2009 +1000"
      },
      "message": "SELinux: flush the avc before disabling SELinux\n\nBefore SELinux is disabled at boot it can create AVC entries.  This patch\nwill flush those entries before disabling SELinux.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "008574b11171a1ee9583a00188e27ff9e0432061",
      "tree": "bada4ddf3c79a6a274a80839acd75eb132c78b29",
      "parents": [
        "ed868a56988464cd31de0302426a5e94d3127f10"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Sat Sep 12 22:54:17 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Sep 14 12:34:09 2009 +1000"
      },
      "message": "SELinux: seperate avc_cache flushing\n\nMove the avc_cache flushing into it\u0027s own function so it can be reused when\ndisabling SELinux.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "ed868a56988464cd31de0302426a5e94d3127f10",
      "tree": "cdcd1715445aa19051b6a9a671b39250a449333a",
      "parents": [
        "86d710146fb9975f04c505ec78caa43d227c1018"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Sat Sep 12 22:54:10 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Sep 14 12:34:07 2009 +1000"
      },
      "message": "Creds: creds-\u003esecurity can be NULL is selinux is disabled\n\n__validate_process_creds should check if selinux is actually enabled before\nrunning tests on the selinux portion of the credentials struct.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "ddd29ec6597125c830f7badb608a86c98b936b64",
      "tree": "e6df1ef9a635179de78650d006ecb4cd1453ebb1",
      "parents": [
        "1ee65e37e904b959c24404139f5752edc66319d5"
      ],
      "author": {
        "name": "David P. Quigley",
        "email": "dpquigl@tycho.nsa.gov",
        "time": "Wed Sep 09 14:25:37 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Sep 10 10:11:29 2009 +1000"
      },
      "message": "sysfs: Add labeling support for sysfs\n\nThis patch adds a setxattr handler to the file, directory, and symlink\ninode_operations structures for sysfs. The patch uses hooks introduced in the\nprevious patch to handle the getting and setting of security information for\nthe sysfs inodes. As was suggested by Eric Biederman the struct iattr in the\nsysfs_dirent structure has been replaced by a structure which contains the\niattr, secdata and secdata length to allow the changes to persist in the event\nthat the inode representing the sysfs_dirent is evicted. Because sysfs only\nstores this information when a change is made all the optional data is moved\ninto one dynamically allocated field.\n\nThis patch addresses an issue where SELinux was denying virtd access to the PCI\nconfiguration entries in sysfs. The lack of setxattr handlers for sysfs\nrequired that a single label be assigned to all entries in sysfs. Granting virtd\naccess to every entry in sysfs is not an acceptable solution so fine grained\nlabeling of sysfs is required such that individual entries can be labeled\nappropriately.\n\n[sds:  Fixed compile-time warnings, coding style, and setting of inode security init flags.]\n\nSigned-off-by: David P. Quigley \u003cdpquigl@tycho.nsa.gov\u003e\nSigned-off-by: Stephen D. Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "1ee65e37e904b959c24404139f5752edc66319d5",
      "tree": "587c1ef70ae7ee41a7b9b531161a4ef5689838f7",
      "parents": [
        "b1ab7e4b2a88d3ac13771463be8f302ce1616cfc"
      ],
      "author": {
        "name": "David P. Quigley",
        "email": "dpquigl@tycho.nsa.gov",
        "time": "Thu Sep 03 14:25:57 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Sep 10 10:11:24 2009 +1000"
      },
      "message": "LSM/SELinux: inode_{get,set,notify}secctx hooks to access LSM security context information.\n\nThis patch introduces three new hooks. The inode_getsecctx hook is used to get\nall relevant information from an LSM about an inode. The inode_setsecctx is\nused to set both the in-core and on-disk state for the inode based on a context\nderived from inode_getsecctx.The final hook inode_notifysecctx will notify the\nLSM of a change for the in-core state of the inode in question. These hooks are\nfor use in the labeled NFS code and addresses concerns of how to set security\non an inode in a multi-xattr LSM. For historical reasons Stephen Smalley\u0027s\nexplanation of the reason for these hooks is pasted below.\n\nQuote Stephen Smalley\n\ninode_setsecctx:  Change the security context of an inode.  Updates the\nin core security context managed by the security module and invokes the\nfs code as needed (via __vfs_setxattr_noperm) to update any backing\nxattrs that represent the context.  Example usage:  NFS server invokes\nthis hook to change the security context in its incore inode and on the\nbacking file system to a value provided by the client on a SETATTR\noperation.\n\ninode_notifysecctx:  Notify the security module of what the security\ncontext of an inode should be.  Initializes the incore security context\nmanaged by the security module for this inode.  Example usage:  NFS\nclient invokes this hook to initialize the security context in its\nincore inode to the value provided by the server for the file when the\nserver returned the file\u0027s attributes to the client.\n\nSigned-off-by: David P. Quigley \u003cdpquigl@tycho.nsa.gov\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "ee18d64c1f632043a02e6f5ba5e045bb26a5465f",
      "tree": "80b5a4d530ec7d5fd69799920f0db7b78aba6b9d",
      "parents": [
        "d0420c83f39f79afb82010c2d2cafd150eef651b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 02 09:14:21 2009 +0100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Sep 02 21:29:22 2009 +1000"
      },
      "message": "KEYS: Add a keyctl to install a process\u0027s session keyring on its parent [try #6]\n\nAdd a keyctl to install a process\u0027s session keyring onto its parent.  This\nreplaces the parent\u0027s session keyring.  Because the COW credential code does\nnot permit one process to change another process\u0027s credentials directly, the\nchange is deferred until userspace next starts executing again.  Normally this\nwill be after a wait*() syscall.\n\nTo support this, three new security hooks have been provided:\ncred_alloc_blank() to allocate unset security creds, cred_transfer() to fill in\nthe blank security creds and key_session_to_parent() - which asks the LSM if\nthe process may replace its parent\u0027s session keyring.\n\nThe replacement may only happen if the process has the same ownership details\nas its parent, and the process has LINK permission on the session keyring, and\nthe session keyring is owned by the process, and the LSM permits it.\n\nNote that this requires alteration to each architecture\u0027s notify_resume path.\nThis has been done for all arches barring blackfin, m68k* and xtensa, all of\nwhich need assembly alteration to support TIF_NOTIFY_RESUME.  This allows the\nreplacement to be performed at the point the parent process resumes userspace\nexecution.\n\nThis allows the userspace AFS pioctl emulation to fully emulate newpag() and\nthe VIOCSETTOK and VIOCSETTOK2 pioctls, all of which require the ability to\nalter the parent process\u0027s PAG membership.  However, since kAFS doesn\u0027t use\nPAGs per se, but rather dumps the keys into the session keyring, the session\nkeyring of the parent must be replaced if, for example, VIOCSETTOK is passed\nthe newpag flag.\n\nThis can be tested with the following program:\n\n\t#include \u003cstdio.h\u003e\n\t#include \u003cstdlib.h\u003e\n\t#include \u003ckeyutils.h\u003e\n\n\t#define KEYCTL_SESSION_TO_PARENT\t18\n\n\t#define OSERROR(X, S) do { if ((long)(X) \u003d\u003d -1) { perror(S); exit(1); } } while(0)\n\n\tint main(int argc, char **argv)\n\t{\n\t\tkey_serial_t keyring, key;\n\t\tlong ret;\n\n\t\tkeyring \u003d keyctl_join_session_keyring(argv[1]);\n\t\tOSERROR(keyring, \"keyctl_join_session_keyring\");\n\n\t\tkey \u003d add_key(\"user\", \"a\", \"b\", 1, keyring);\n\t\tOSERROR(key, \"add_key\");\n\n\t\tret \u003d keyctl(KEYCTL_SESSION_TO_PARENT);\n\t\tOSERROR(ret, \"KEYCTL_SESSION_TO_PARENT\");\n\n\t\treturn 0;\n\t}\n\nCompiled and linked with -lkeyutils, you should see something like:\n\n\t[dhowells@andromeda ~]$ keyctl show\n\tSession Keyring\n\t       -3 --alswrv   4043  4043  keyring: _ses\n\t355907932 --alswrv   4043    -1   \\_ keyring: _uid.4043\n\t[dhowells@andromeda ~]$ /tmp/newpag\n\t[dhowells@andromeda ~]$ keyctl show\n\tSession Keyring\n\t       -3 --alswrv   4043  4043  keyring: _ses\n\t1055658746 --alswrv   4043  4043   \\_ user: a\n\t[dhowells@andromeda ~]$ /tmp/newpag hello\n\t[dhowells@andromeda ~]$ keyctl show\n\tSession Keyring\n\t       -3 --alswrv   4043  4043  keyring: hello\n\t340417692 --alswrv   4043  4043   \\_ user: a\n\nWhere the test program creates a new session keyring, sticks a user key named\n\u0027a\u0027 into it and then installs it on its parent.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "e0e817392b9acf2c98d3be80c233dddb1b52003d",
      "tree": "ee680c020039313c9f9c40ab3542bb30a7363381",
      "parents": [
        "ed6d76e4c32de0c2ad5f1d572b948ef49e465176"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 02 09:13:40 2009 +0100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Sep 02 21:29:01 2009 +1000"
      },
      "message": "CRED: Add some configurable debugging [try #6]\n\nAdd a config option (CONFIG_DEBUG_CREDENTIALS) to turn on some debug checking\nfor credential management.  The additional code keeps track of the number of\npointers from task_structs to any given cred struct, and checks to see that\nthis number never exceeds the usage count of the cred struct (which includes\nall references, not just those from task_structs).\n\nFurthermore, if SELinux is enabled, the code also checks that the security\npointer in the cred struct is never seen to be invalid.\n\nThis attempts to catch the bug whereby inode_has_perm() faults in an nfsd\nkernel thread on seeing cred-\u003esecurity be a NULL pointer (it appears that the\ncredential struct has been previously released):\n\n\thttp://www.kerneloops.org/oops.php?number\u003d252883\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "ed6d76e4c32de0c2ad5f1d572b948ef49e465176",
      "tree": "893914916ad849fefed72df48bca0bf9c78e392d",
      "parents": [
        "2b980dbd77d229eb60588802162c9659726b11f4"
      ],
      "author": {
        "name": "Paul Moore",
        "email": "paul.moore@hp.com",
        "time": "Fri Aug 28 18:12:49 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Sep 01 08:29:52 2009 +1000"
      },
      "message": "selinux: Support for the new TUN LSM hooks\n\nAdd support for the new TUN LSM hooks: security_tun_dev_create(),\nsecurity_tun_dev_post_create() and security_tun_dev_attach().  This includes\nthe addition of a new object class, tun_socket, which represents the socks\nassociated with TUN devices.  The _tun_dev_create() and _tun_dev_post_create()\nhooks are fairly similar to the standard socket functions but _tun_dev_attach()\nis a bit special.  The _tun_dev_attach() is unique because it involves a\ndomain attaching to an existing TUN device and its associated tun_socket\nobject, an operation which does not exist with standard sockets and most\nclosely resembles a relabel operation.\n\nSigned-off-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nAcked-by: Eric Paris \u003ceparis@parisplace.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "bc6a6008e5e3c7a30191a7f19ab19e85b14b1705",
      "tree": "46504659c2303224cb3c8ad13e1d1b580351b41b",
      "parents": [
        "ece13879e74313e62109e0755dd3d4f172df89e2"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Thu Aug 20 19:29:02 2009 -0700"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Aug 21 14:25:30 2009 +1000"
      },
      "message": "selinux: adjust rules for ATTR_FORCE\n\nAs suggested by OGAWA Hirofumi in thread:\nhttp://lkml.org/lkml/2009/8/7/132, we should let selinux_inode_setattr()\nto match our ATTR_* rules.  ATTR_FORCE should not force things like\nATTR_SIZE.\n\n[hirofumi@mail.parknet.co.jp: tweaks]\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nAcked-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nCc: Eugene Teo \u003ceteo@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "ece13879e74313e62109e0755dd3d4f172df89e2",
      "tree": "1fe96ab392c1ff203a6fb3f67ed0ed577056572e",
      "parents": [
        "b08dc3eba0c34027010caeda258f495074ae3a54",
        "6c30c53fd5ae6a99a23ad78e90c428d2c8ffb07f"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Aug 20 09:18:42 2009 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Aug 20 09:18:42 2009 +1000"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tsecurity/Kconfig\n\nManual fix.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "788084aba2ab7348257597496befcbccabdc98a3",
      "tree": "2da42d746d67b16ef705229a1b5a3528ec19c725",
      "parents": [
        "8cf948e744e0218af604c32edecde10006dc8e9e"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jul 31 12:54:11 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 17 15:09:11 2009 +1000"
      },
      "message": "Security/SELinux: seperate lsm specific mmap_min_addr\n\nCurrently SELinux enforcement of controls on the ability to map low memory\nis determined by the mmap_min_addr tunable.  This patch causes SELinux to\nignore the tunable and instead use a seperate Kconfig option specific to how\nmuch space the LSM should protect.\n\nThe tunable will now only control the need for CAP_SYS_RAWIO and SELinux\npermissions will always protect the amount of low memory designated by\nCONFIG_LSM_MMAP_MIN_ADDR.\n\nThis allows users who need to disable the mmap_min_addr controls (usual reason\nbeing they run WINE as a non-root user) to do so and still have SELinux\ncontrols preventing confined domains (like a web server) from being able to\nmap some area of low memory.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "8cf948e744e0218af604c32edecde10006dc8e9e",
      "tree": "c5d48e9210976e28e5ce07d69ca9b87d4c437389",
      "parents": [
        "9c0d90103c7e0eb6e638e5b649e9f6d8d9c1b4b3"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jul 31 12:54:05 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 17 15:08:48 2009 +1000"
      },
      "message": "SELinux: call cap_file_mmap in selinux_file_mmap\n\nCurrently SELinux does not check CAP_SYS_RAWIO in the file_mmap hook.  This\nmeans there is no DAC check on the ability to mmap low addresses in the\nmemory space.  This function adds the DAC check for CAP_SYS_RAWIO while\nmaintaining the selinux check on mmap_zero.  This means that processes\nwhich need to mmap low memory will need CAP_SYS_RAWIO and mmap_zero but will\nNOT need the SELinux sys_rawio capability.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "2bf49690325b62480a42f7afed5e9f164173c570",
      "tree": "bc8525f6a45ea3ffaed9449084df7644bcd4e3c2",
      "parents": [
        "f322abf83feddc3c37c3a91794e0c5aece4af18e"
      ],
      "author": {
        "name": "Thomas Liu",
        "email": "tliu@redhat.com",
        "time": "Tue Jul 14 12:14:09 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 17 08:37:18 2009 +1000"
      },
      "message": "SELinux: Convert avc_audit to use lsm_audit.h\n\nConvert avc_audit in security/selinux/avc.c to use lsm_audit.h,\nfor better maintainability.\n\n - changed selinux to use common_audit_data instead of\n    avc_audit_data\n - eliminated code in avc.c and used code from lsm_audit.h instead.\n\nHad to add a LSM_AUDIT_NO_AUDIT to lsm_audit.h so that avc_audit\ncan call common_lsm_audit and do the pre and post callbacks without\ndoing the actual dump.  This makes it so that the patched version\nbehaves the same way as the unpatched version.\n\nAlso added a denied field to the selinux_audit_data private space,\nonce again to make it so that the patched version behaves like the\nunpatched.\n\nI\u0027ve tested and confirmed that AVCs look the same before and after\nthis patch.\n\nSigned-off-by: Thomas Liu \u003ctliu@redhat.com\u003e\nAcked-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "25354c4fee169710fd9da15f3bb2abaa24dcf933",
      "tree": "7fb462945c15ce09392ae858c8ae757290b5ed2d",
      "parents": [
        "9188499cdb117d86a1ea6b04374095b098d56936"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Aug 13 09:45:03 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Aug 14 11:18:40 2009 +1000"
      },
      "message": "SELinux: add selinux_kernel_module_request\n\nThis patch adds a new selinux hook so SELinux can arbitrate if a given\nprocess should be allowed to trigger a request for the kernel to try to\nload a module.  This is a different operation than a process trying to load\na module itself, which is already protected by CAP_SYS_MODULE.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "314dabb83a547ec4da819e8cbc78fac9cec605cd",
      "tree": "8e32efc47c52a218bfb4eb517ae2ba14d496adcc",
      "parents": [
        "85dfd81dc57e8183a277ddd7a56aa65c96f3f487"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 10 22:00:13 2009 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Aug 11 08:37:13 2009 +1000"
      },
      "message": "SELinux: fix memory leakage in /security/selinux/hooks.c\n\nFix memory leakage in /security/selinux/hooks.c\n\nThe buffer always needs to be freed here; we either error\nout or allocate more memory.\n\nReported-by: iceberg \u003cstrakh@ispras.ru\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\n"
    },
    {
      "commit": "a2551df7ec568d87793d2eea4ca744e86318f205",
      "tree": "3bdd4257bf757d9d1d64d9d7aa10cd144cd3a657",
      "parents": [
        "84336d1a77ccd2c06a730ddd38e695c2324a7386"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jul 31 12:54:11 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Aug 06 09:02:23 2009 +1000"
      },
      "message": "Security/SELinux: seperate lsm specific mmap_min_addr\n\nCurrently SELinux enforcement of controls on the ability to map low memory\nis determined by the mmap_min_addr tunable.  This patch causes SELinux to\nignore the tunable and instead use a seperate Kconfig option specific to how\nmuch space the LSM should protect.\n\nThe tunable will now only control the need for CAP_SYS_RAWIO and SELinux\npermissions will always protect the amount of low memory designated by\nCONFIG_LSM_MMAP_MIN_ADDR.\n\nThis allows users who need to disable the mmap_min_addr controls (usual reason\nbeing they run WINE as a non-root user) to do so and still have SELinux\ncontrols preventing confined domains (like a web server) from being able to\nmap some area of low memory.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "84336d1a77ccd2c06a730ddd38e695c2324a7386",
      "tree": "9eeb414eff58e5b7165daa36c2ce3c2e7422632b",
      "parents": [
        "7c73875e7dda627040b12c19b01db634fa7f0fd1"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jul 31 12:54:05 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Aug 06 09:02:21 2009 +1000"
      },
      "message": "SELinux: call cap_file_mmap in selinux_file_mmap\n\nCurrently SELinux does not check CAP_SYS_RAWIO in the file_mmap hook.  This\nmeans there is no DAC check on the ability to mmap low addresses in the\nmemory space.  This function adds the DAC check for CAP_SYS_RAWIO while\nmaintaining the selinux check on mmap_zero.  This means that processes\nwhich need to mmap low memory will need CAP_SYS_RAWIO and mmap_zero but will\nNOT need the SELinux sys_rawio capability.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "5bb459bb45d1ad3c177485dcf0af01580aa31125",
      "tree": "fd6d11d424d222b97f56d8b870bdecbacaab8a17",
      "parents": [
        "d2e3ee9b29f5de5b01e611b04e6fb29760589b01"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jul 10 03:48:23 2009 +0200"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Jul 17 09:10:42 2009 +1000"
      },
      "message": "kernel: rename is_single_threaded(task) to current_is_single_threaded(void)\n\n- is_single_threaded(task) is not safe unless task \u003d\u003d current,\n  we can\u0027t use task-\u003esignal or task-\u003emm.\n\n- it doesn\u0027t make sense unless task \u003d\u003d current, the task can\n  fork right after the check.\n\nRename it to current_is_single_threaded() and kill the argument.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    }
  ],
  "next": "be940d6279c30a2d7c4e8d1d5435f957f594d66d"
}
