)]}'
{
  "commit": "7cc779f15c524e1622f7d5b1c7e82e6ffc6677fd",
  "tree": "0f995c0878649447ef160e727505ae81495dcdde",
  "parents": [
    "2bfb8c9180603bac97dca2d8e359f71bb11f7126"
  ],
  "author": {
    "name": "George Burgess IV",
    "email": "gbiv@google.com",
    "time": "Thu Feb 09 00:00:31 2017 -0800"
  },
  "committer": {
    "name": "George Burgess IV",
    "email": "gbiv@google.com",
    "time": "Thu Feb 09 15:49:32 2017 -0800"
  },
  "message": "libc: add clang FORTIFY support\n\nThis patch adds clang-style FORTIFY to Bionic. For more information on\nFORTIFY, please see https://goo.gl/8HS2dW . This implementation works\nfor versions of clang that don\u0027t support diagnose_if, so please see the\n\"without diagnose_if\" sections. We plan to swap to a diagnose_if-based\nFORTIFY later this year (since it doesn\u0027t really add any features; it\njust simplifies the implementation a lot, and it gives us much prettier\ndiagnostics)\n\nBug: 32073964\nTest: Builds on angler, bullhead, marlin, sailfish. Bionic CTS tests\npass on Angler and Bullhead.\n\nChange-Id: I607aecbeee81529709b1eee7bef5b0836151eb2b\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b9f3a2ad402be4f7d7dff7bbf9373d460b45a333",
      "old_mode": 33188,
      "old_path": "libc/arch-arm/generic/bionic/strlen.c",
      "new_id": "f6b92093792cffa47b670c82b02a261bdd3c3a0e",
      "new_mode": 33188,
      "new_path": "libc/arch-arm/generic/bionic/strlen.c"
    },
    {
      "type": "modify",
      "old_id": "45fc4b4bd4ebbe841543972ed1bb6f195d93d0de",
      "old_mode": 33188,
      "old_path": "libc/arch-mips/string/mips_strlen.c",
      "new_id": "f1465f28771bd3815fe71cf1b2b41c12d8e866f8",
      "new_mode": 33188,
      "new_path": "libc/arch-mips/string/mips_strlen.c"
    },
    {
      "type": "modify",
      "old_id": "7e0e27b1d8d50b8efc643cacc0a11c4c7967501d",
      "old_mode": 33188,
      "old_path": "libc/arch-mips/string/strlen.c",
      "new_id": "488e3c880c3302bdc94bb5670ad4e1753e127bd2",
      "new_mode": 33188,
      "new_path": "libc/arch-mips/string/strlen.c"
    },
    {
      "type": "modify",
      "old_id": "cf506644523e81364a0d169864a803a550a89f98",
      "old_mode": 33188,
      "old_path": "libc/bionic/fortify.cpp",
      "new_id": "117de484212dd1fafd6134f7ef09b6f193e6e2f3",
      "new_mode": 33188,
      "new_path": "libc/bionic/fortify.cpp"
    },
    {
      "type": "modify",
      "old_id": "bcd6a57843ea4e9020b9faf8649f03d565300681",
      "old_mode": 33188,
      "old_path": "libc/bionic/getcwd.cpp",
      "new_id": "c2a7e234925ca01d52aff5bb0867a2a60339de84",
      "new_mode": 33188,
      "new_path": "libc/bionic/getcwd.cpp"
    },
    {
      "type": "modify",
      "old_id": "23ef90a8f44f7963c90f9981530ab1eb559a07ae",
      "old_mode": 33188,
      "old_path": "libc/bionic/poll.cpp",
      "new_id": "eded56a85656b4fd7b2488d16176d1a979c097b6",
      "new_mode": 33188,
      "new_path": "libc/bionic/poll.cpp"
    },
    {
      "type": "modify",
      "old_id": "94ea1535ba303432cb69be17a6cc200160a923fe",
      "old_mode": 33188,
      "old_path": "libc/include/fcntl.h",
      "new_id": "88bcc7826c5b889dcfda0d6c44b4f0fb1f6a769d",
      "new_mode": 33188,
      "new_path": "libc/include/fcntl.h"
    },
    {
      "type": "modify",
      "old_id": "7452e535f6abbfc1f9cd4e10c8ac40fffad015d2",
      "old_mode": 33188,
      "old_path": "libc/include/malloc.h",
      "new_id": "752ee7257bee4138ef71f0b1cf1e30eb709df5a9",
      "new_mode": 33188,
      "new_path": "libc/include/malloc.h"
    },
    {
      "type": "modify",
      "old_id": "c4e62f98d37c3391a5b144fc1becd29a4698dc9a",
      "old_mode": 33188,
      "old_path": "libc/include/poll.h",
      "new_id": "3287a0c7c399ff07d8c39531038879ae37c5700d",
      "new_mode": 33188,
      "new_path": "libc/include/poll.h"
    },
    {
      "type": "modify",
      "old_id": "9125e4c32cc3b73dfcee75bba71ac92f70baa5c0",
      "old_mode": 33188,
      "old_path": "libc/include/stdio.h",
      "new_id": "6a76da61cde0336db77337faf108331d67dd5e74",
      "new_mode": 33188,
      "new_path": "libc/include/stdio.h"
    },
    {
      "type": "modify",
      "old_id": "d0c08e14d895fdf68f4d991549d491012c223cfc",
      "old_mode": 33188,
      "old_path": "libc/include/stdlib.h",
      "new_id": "eefee13cbe0fa73a693fbcdfee35ae003734bd24",
      "new_mode": 33188,
      "new_path": "libc/include/stdlib.h"
    },
    {
      "type": "modify",
      "old_id": "3e52f481202ccdfe10200579d8aa4d8dc4114b24",
      "old_mode": 33188,
      "old_path": "libc/include/string.h",
      "new_id": "38595b26287affc57de9a5372f1a6d61c0bb18f2",
      "new_mode": 33188,
      "new_path": "libc/include/string.h"
    },
    {
      "type": "modify",
      "old_id": "63e782efd87c47dd144ed75367b945be90f5e008",
      "old_mode": 33188,
      "old_path": "libc/include/sys/cdefs.h",
      "new_id": "9492d9291edd3ef9bb80c31c31be26884ee90d1d",
      "new_mode": 33188,
      "new_path": "libc/include/sys/cdefs.h"
    },
    {
      "type": "modify",
      "old_id": "f9f6764556210a2925eecff31eb919b98f04c4af",
      "old_mode": 33188,
      "old_path": "libc/include/sys/socket.h",
      "new_id": "997191ef40a7ad905cd1a1e820cf4ced68ec1f49",
      "new_mode": 33188,
      "new_path": "libc/include/sys/socket.h"
    },
    {
      "type": "modify",
      "old_id": "f961cf82ecdafaa6849cd8f7bd229e5e253a2da2",
      "old_mode": 33188,
      "old_path": "libc/include/sys/stat.h",
      "new_id": "f8d854d803ecee8a07a436006305ee2d11ab05f1",
      "new_mode": 33188,
      "new_path": "libc/include/sys/stat.h"
    },
    {
      "type": "modify",
      "old_id": "cbdb438d89f22491332459399bcef68a645cac24",
      "old_mode": 33188,
      "old_path": "libc/include/unistd.h",
      "new_id": "b3f8c1149aac7ddcf12e1ad952dd70735a3bed22",
      "new_mode": 33188,
      "new_path": "libc/include/unistd.h"
    },
    {
      "type": "modify",
      "old_id": "f3f0127379c8ab271c015f6917b3aa66ae428ca0",
      "old_mode": 33188,
      "old_path": "libc/stdio/fread.c",
      "new_id": "7b858ae0c0ad1f0e3f67c5a742ce965dad79d36d",
      "new_mode": 33188,
      "new_path": "libc/stdio/fread.c"
    },
    {
      "type": "modify",
      "old_id": "c4bd953e928b6762e5992371b4596e5b37e90905",
      "old_mode": 33188,
      "old_path": "libc/upstream-freebsd/lib/libc/stdlib/realpath.c",
      "new_id": "914ecc9c066ab25e66efcc8770dbdacf1e293677",
      "new_mode": 33188,
      "new_path": "libc/upstream-freebsd/lib/libc/stdlib/realpath.c"
    },
    {
      "type": "modify",
      "old_id": "0ba8770e33b9da081aea2012259e8ee69416732b",
      "old_mode": 33188,
      "old_path": "libc/upstream-openbsd/lib/libc/stdio/fgets.c",
      "new_id": "345884a14e76ab4065f92b0afe87b63977507fae",
      "new_mode": 33188,
      "new_path": "libc/upstream-openbsd/lib/libc/stdio/fgets.c"
    },
    {
      "type": "modify",
      "old_id": "f0a17bfb9a8455f59a339f4766aa5d17f636e29c",
      "old_mode": 33188,
      "old_path": "libc/upstream-openbsd/lib/libc/stdio/fwrite.c",
      "new_id": "c72d968fd65b4b5c66095a29a3919cc098f7a064",
      "new_mode": 33188,
      "new_path": "libc/upstream-openbsd/lib/libc/stdio/fwrite.c"
    },
    {
      "type": "modify",
      "old_id": "4573e3ceb1177451032f6e0f5d453ccbb36e6ce5",
      "old_mode": 33188,
      "old_path": "libc/upstream-openbsd/lib/libc/string/memchr.c",
      "new_id": "05a119749d79ab48e2b2da1a7b7dfe495b2e621c",
      "new_mode": 33188,
      "new_path": "libc/upstream-openbsd/lib/libc/string/memchr.c"
    },
    {
      "type": "modify",
      "old_id": "1baad53544084ebe35848a74afb89502f24eb880",
      "old_mode": 33188,
      "old_path": "libc/upstream-openbsd/lib/libc/string/memmove.c",
      "new_id": "910f48c4ae2da4ffd2cd618ed000a38f36ae1765",
      "new_mode": 33188,
      "new_path": "libc/upstream-openbsd/lib/libc/string/memmove.c"
    },
    {
      "type": "modify",
      "old_id": "bd27ebc620e52ba2641baf22de5c2280486f2e31",
      "old_mode": 33188,
      "old_path": "libc/upstream-openbsd/lib/libc/string/memrchr.c",
      "new_id": "1cce80923f79b3cb4bce280235fd234a7478219f",
      "new_mode": 33188,
      "new_path": "libc/upstream-openbsd/lib/libc/string/memrchr.c"
    },
    {
      "type": "modify",
      "old_id": "d88afac345356c0c2736794e1b23977ac5e824a1",
      "old_mode": 33188,
      "old_path": "libc/upstream-openbsd/lib/libc/string/stpcpy.c",
      "new_id": "3ed57829ca04d5e0896a48a7fad850acda5043b6",
      "new_mode": 33188,
      "new_path": "libc/upstream-openbsd/lib/libc/string/stpcpy.c"
    },
    {
      "type": "modify",
      "old_id": "c7c2a57c4cd0de7be0437db48b55df5b5b14cf20",
      "old_mode": 33188,
      "old_path": "libc/upstream-openbsd/lib/libc/string/stpncpy.c",
      "new_id": "661a4fda90b2eb3498663bd7a1f0d219f575875b",
      "new_mode": 33188,
      "new_path": "libc/upstream-openbsd/lib/libc/string/stpncpy.c"
    },
    {
      "type": "modify",
      "old_id": "646c9c2090918eedb1a03990f536eb3d91114b98",
      "old_mode": 33188,
      "old_path": "libc/upstream-openbsd/lib/libc/string/strcat.c",
      "new_id": "7872a2ddcd173bd5c8c3f54fdc5b75939b4da8ac",
      "new_mode": 33188,
      "new_path": "libc/upstream-openbsd/lib/libc/string/strcat.c"
    },
    {
      "type": "modify",
      "old_id": "5a9001e4310648f26407cf4ed408bd6ac4a35424",
      "old_mode": 33188,
      "old_path": "libc/upstream-openbsd/lib/libc/string/strcpy.c",
      "new_id": "1b1169c788a2bef7698737896e6ca3cbaf4f66cc",
      "new_mode": 33188,
      "new_path": "libc/upstream-openbsd/lib/libc/string/strcpy.c"
    },
    {
      "type": "modify",
      "old_id": "073b0d42594a8196eb1acb579fff636d8708b6bd",
      "old_mode": 33188,
      "old_path": "libc/upstream-openbsd/lib/libc/string/strlcat.c",
      "new_id": "7bf98aac3c4c974033f2b3b3061da6d15299b49b",
      "new_mode": 33188,
      "new_path": "libc/upstream-openbsd/lib/libc/string/strlcat.c"
    },
    {
      "type": "modify",
      "old_id": "5fcf084aaad6c75e35eb79ebd7de1fe0e89d20da",
      "old_mode": 33188,
      "old_path": "libc/upstream-openbsd/lib/libc/string/strlcpy.c",
      "new_id": "a5343b8efa475dc8cd95aee26e8358e986327154",
      "new_mode": 33188,
      "new_path": "libc/upstream-openbsd/lib/libc/string/strlcpy.c"
    },
    {
      "type": "modify",
      "old_id": "c4df4f2fad6298848e5bf544147c59cd7510b27a",
      "old_mode": 33188,
      "old_path": "libc/upstream-openbsd/lib/libc/string/strncat.c",
      "new_id": "32334b3020c29a346d0a02b86ce4491d46adb897",
      "new_mode": 33188,
      "new_path": "libc/upstream-openbsd/lib/libc/string/strncat.c"
    },
    {
      "type": "modify",
      "old_id": "5003a199a9bf7e7328781c6fc32efeea6be540a0",
      "old_mode": 33188,
      "old_path": "libc/upstream-openbsd/lib/libc/string/strncpy.c",
      "new_id": "e83c7e50f647d3d37a33f33c8f3c587b0807db33",
      "new_mode": 33188,
      "new_path": "libc/upstream-openbsd/lib/libc/string/strncpy.c"
    },
    {
      "type": "modify",
      "old_id": "b65b456a40cefdd8adcf278bd5188cfe2a8b8cd1",
      "old_mode": 33188,
      "old_path": "tests/Android.mk",
      "new_id": "24ff7f2775c4b914f60d6aa23a9680bdb4999a02",
      "new_mode": 33188,
      "new_path": "tests/Android.mk"
    },
    {
      "type": "modify",
      "old_id": "132659716b7138f53a4c9406e4194e04e643a483",
      "old_mode": 33188,
      "old_path": "tests/fortify_compilation_test.cpp",
      "new_id": "1b02d4eaedebc4467539ef7930fc72f41d79bfd0",
      "new_mode": 33188,
      "new_path": "tests/fortify_compilation_test.cpp"
    }
  ]
}
