)]}'
{
  "commit": "cefcea838729287a04174664a76514dd793dd77d",
  "tree": "1feb269b6224d0448f15502eb09da4a97dc67b24",
  "parents": [
    "5733b35c23792834f3a2374003c109301a48867c"
  ],
  "author": {
    "name": "Dave Allison",
    "email": "dallison@google.com",
    "time": "Tue Sep 16 10:01:01 2014 -0700"
  },
  "committer": {
    "name": "Dave Allison",
    "email": "dallison@google.com",
    "time": "Tue Sep 16 10:11:17 2014 -0700"
  },
  "message": "Don\u0027t call dlsym from signal context in signal chain\n\nIt is dangerous to call dlsym from within a signal context\nsince it takes a lock and can lead to a mutex reentry attempt if\ntiming is bad.\n\nThis change adds an initialization function to the signal chain\nthat calls dlsym for sigaction and sigprocmask from outside the\nsignal context (from Runtime::Init()).  The results are cached\nin a static variable and used from within the signal context if\nnecessary.\n\nHowever, tests don\u0027t necessarily call Runtime::Init() so we also\nneed to deal with the case where the signal chain is not initialized\nand perform a lazy initialization from inside sigaction or sigprocmask.\nThis is always outside a signal context since we have not initialized\nthe runtime.\n\nBug: 17498571\nChange-Id: I59eebfc67cc91c6f1d781a73e5d432ca5269ee48\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a1ea3cf5bf1d570c59ba93624ee481c8ee8d9588",
      "old_mode": 33188,
      "old_path": "runtime/runtime.cc",
      "new_id": "9ecc18b656dec54a3a535934063c8c0d46c4f917",
      "new_mode": 33188,
      "new_path": "runtime/runtime.cc"
    },
    {
      "type": "modify",
      "old_id": "75399904df9fc0bc6942e0ca781d228a6618ad7d",
      "old_mode": 33188,
      "old_path": "sigchainlib/sigchain.cc",
      "new_id": "74bfb7e9c62e6c740309cc8825538171d3664438",
      "new_mode": 33188,
      "new_path": "sigchainlib/sigchain.cc"
    },
    {
      "type": "modify",
      "old_id": "a4ce81ce4c322ba790f94258985ddfceaddc8076",
      "old_mode": 33188,
      "old_path": "sigchainlib/sigchain.h",
      "new_id": "5bc402685006d47662563022ed8c708966a9200b",
      "new_mode": 33188,
      "new_path": "sigchainlib/sigchain.h"
    }
  ]
}
