)]}'
{
  "log": [
    {
      "commit": "6cb70ad776c8e37bd812a449fc1bac64a22bdedb",
      "tree": "462ab239260ff4ce9726646b63804c7b14456ff9",
      "parents": [
        "dd2ed970793f3119f43368e72784155227b7f7f7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 31 15:37:32 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 31 21:16:18 2019 -0700"
      },
      "message": "Add the ScopedFd that we\u0027ve never quite gotten around to.\n\nThis is actually for the new change I\u0027m working on, but let\u0027s retrofit\nit first to separate any bugs in these changes from those in the new\nchange...\n\nTest: treehugger\nChange-Id: I890aeb61f9792810a77ad0da3f9674c9cc5db7bb\n"
    },
    {
      "commit": "50080a29f7327fcd009344844bb9e643b2d6b9c3",
      "tree": "41756be57e12ffe374147c12b954cfe01b44140c",
      "parents": [
        "745137c827f6e593ddf1c01783ca41a676ddd172"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 19 12:47:53 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 19 15:38:42 2019 -0700"
      },
      "message": "Remove the ___ hack.\n\nPlain __ for generated syscalls didn\u0027t mean it was a hidden symbol, it\njust meant \"please don\u0027t use this\". We added ___ to signify that a\nhidden symbol should be generated, but then we added the map files\nanyway so you now have to explicitly export symbols. Given that, this\nconvention serves no particular purpose so we may as well just use the\nnicer names have everything look the same.\n\nTest: treehugger\nChange-Id: If424e17a49c36f4be545f5d283c4561a6ea9c7ea\n"
    },
    {
      "commit": "00490ae3f351e07ed4cc2a94b11cba6a22f37311",
      "tree": "ad09d82701fd1d9cdf44231d8b8789007aa5d8d9",
      "parents": [
        "d57bf449fe6c2dcf35d90d6e4098038ac8a24ecb"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 03 11:27:25 2015 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Feb 03 12:10:30 2015 -0800"
      },
      "message": "Ensure raw fchmod/fchmodat syscalls are hidden.\n\nIn https://android-review.googlesource.com/#/c/127908/5/libc/SYSCALLS.TXT@116\nElliott said:\n\n  for LP64 these will be hidden. for LP32 we were cowards and left\n  them all public for compatibility (though i don\u0027t think we ever\n  dremeled to see whether it was needed). we don\u0027t have an easy\n  way to recognize additions, though, so we can\u0027t prevent adding\n  new turds.\n\nAdd a mechanism to prevent the adding of new turds, and use that\nmechanism on the fchmod/fchmodat system calls.\n\nBug: 19233951\nChange-Id: I98f98345970b631a379f348df57858f9fc3d57c0\n"
    },
    {
      "commit": "3cbc6c627fe57c9a9783c52d148078f8d52f7b96",
      "tree": "ea5b0dc49aaa16f25e2262cd5560070ae65923b9",
      "parents": [
        "21cdd22f035efd50902b7780fc6ea53bd1684357"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jan 31 19:57:46 2015 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Feb 02 13:17:17 2015 -0800"
      },
      "message": "Add fchmodat(AT_SYMLINK_NOFOLLOW) and fchmod O_PATH support\n\nMany libc functions have an option to not follow symbolic\nlinks. This is useful to avoid security sensitive code\nfrom inadvertantly following attacker supplied symlinks\nand taking inappropriate action on files it shouldn\u0027t.\nFor example, open() has O_NOFOLLOW, chown() has\nlchown(), stat() has lstat(), etc.\n\nThere is no such equivalent function for chmod(), such as lchmod().\nTo address this, POSIX introduced fchmodat(AT_SYMLINK_NOFOLLOW),\nwhich is intended to provide a way to perform a chmod operation\nwhich doesn\u0027t follow symlinks.\n\nCurrently, the Linux kernel doesn\u0027t implement AT_SYMLINK_NOFOLLOW.\nIn GLIBC, attempting to use the AT_SYMLINK_NOFOLLOW flag causes\nfchmodat to return ENOTSUP. Details are in \"man fchmodat\".\n\nBionic currently differs from GLIBC in that AT_SYMLINK_NOFOLLOW\nis silently ignored and treated as if the flag wasn\u0027t present.\n\nThis patch provides a userspace implementation of\nAT_SYMLINK_NOFOLLOW for bionic. Using open(O_PATH | O_NOFOLLOW),\nwe can provide a way to atomically change the permissions on\nfiles without worrying about race conditions.\n\nAs part of this change, we add support for fchmod on O_PATH\nfile descriptors, because it\u0027s relatively straight forward\nand could be useful in the future.\n\nThe basic idea behind this implementation comes from\nhttps://sourceware.org/bugzilla/show_bug.cgi?id\u003d14578 , specifically\ncomment #10.\n\nChange-Id: I1eba0cdb2c509d9193ceecf28f13118188a3cfa7\n"
    }
  ]
}
