)]}'
{
  "commit": "00cc72894f3ce5c3b0d337e424f19da089140237",
  "tree": "50455728a1f7f662e1a7c69d4434d014213e108e",
  "parents": [
    "ca44b077a889ea7ddb6d5de712ac6dd0d6a3d67e"
  ],
  "author": {
    "name": "Kees Cook",
    "email": "keescook@chromium.org",
    "time": "Tue Nov 27 17:46:37 2012 -0800"
  },
  "committer": {
    "name": "Gerrit",
    "email": "chrome-bot@google.com",
    "time": "Wed Nov 28 21:35:49 2012 -0800"
  },
  "message": "Tlcl: allow OS failures to bubble up to caller\n\nIf there were any errors communicating with the TPM at the OS layer\n(open, read, write failures), the library would immediately exit, not\nallowing the caller to make any decisions about how to handle it. This\nintroduces a way to initialize the library so that errors will get passed\nback up to the caller instead of unceremoniously exiting.\n\nSetting the environment variable \"TPM_NO_EXIT\u003d1\" enables the feature. To\navoid needing to implement supporting functions in all backends, the\nfeature is currently limited to just the Tlcl stub implementation.\n\nIn the case of mount-encrypted, it can now survive the kernel returning\nread/write failures. In the past it had only worked around having open\nfail, but that has now been replaced with more sensible logic instead of\nthe environment variable trickiness.\n\nBUG\u003dchrome-os-partner:15960\nTEST\u003ddaisy built with an always-failing kernel driver, u-boot builds too\nBRANCH\u003dNone\n\nChange-Id: Ic7b217017537980f9c239d678067398613045676\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nReviewed-on: https://gerrit.chromium.org/gerrit/38791\nReviewed-by: Luigi Semenzato \u003csemenzato@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "39198f466fcf277cabca32217a2a08e5af32c3b2",
      "old_mode": 33188,
      "old_path": "firmware/include/tss_constants.h",
      "new_id": "ef5840079ae46033bab897676810e02758792d3b",
      "new_mode": 33188,
      "new_path": "firmware/include/tss_constants.h"
    },
    {
      "type": "modify",
      "old_id": "511a4fc6ce17533996cf0b46e1e61226928701ca",
      "old_mode": 33188,
      "old_path": "firmware/lib/tpm_lite/tlcl.c",
      "new_id": "9a0801f5e234ebfecba0e8ebe51bbc3968806247",
      "new_mode": 33188,
      "new_path": "firmware/lib/tpm_lite/tlcl.c"
    },
    {
      "type": "modify",
      "old_id": "1b49836820fb6ddf564632ebf93a8a8e323bb3a5",
      "old_mode": 33188,
      "old_path": "firmware/stub/tpm_lite_stub.c",
      "new_id": "a60d65074145639cb11c5d59814dd029f9b03c90",
      "new_mode": 33188,
      "new_path": "firmware/stub/tpm_lite_stub.c"
    },
    {
      "type": "modify",
      "old_id": "94f54d8a08722016e8110a443912bba9e449c94a",
      "old_mode": 33188,
      "old_path": "utility/mount-encrypted.c",
      "new_id": "2c975a39eddd35c41f64302309b83d736bf3609c",
      "new_mode": 33188,
      "new_path": "utility/mount-encrypted.c"
    }
  ]
}
