)]}'
{
  "commit": "6e8ac5087061350a5a98ddc24dad6ceef9baf991",
  "tree": "35d5c7c7d42f03ccf97e67066b70a58e209667db",
  "parents": [
    "3d32218812e87221344f2985512e42e4aaa88745"
  ],
  "author": {
    "name": "Viktor Dukhovni",
    "email": "openssl-users@dukhovni.org",
    "time": "Sat Nov 21 20:14:43 2015 -0500"
  },
  "committer": {
    "name": "Viktor Dukhovni",
    "email": "openssl-users@dukhovni.org",
    "time": "Sun Nov 22 16:54:43 2015 -0500"
  },
  "message": "Async error handling and MacOS/X fixes\n\nIn the async code for MacOS/X define _XOPEN_SOURCE (if not already\ndefined) as early as possible.  We must do this before including\nany header files, because on MacOS/X \u003cstlib.h\u003e includes \u003csignal.h\u003e\nwhich includes \u003cucontext.h\u003e.  If we delay defining _XOPEN_SOURCE\nand include \u003cucontext.h\u003e after various system headers are included,\nwe are very likely to end up with the wrong (truncated) definition\nof ucontext_t.\n\nAlso, better error handling and some code cleanup in POSIX fibre\nconstruction and destruction.  We make sure that async_fibre_makecontext()\nalways initializes the fibre to a state that can be freed.\n\nFor all implementations, check for error returns from\nasync_fibre_makecontext().\n\nReviewed-by: Matt Caswell \u003cmatt@openssl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b2dbfee7ec21d538fa360fba525eb15548e0f85d",
      "old_mode": 33188,
      "old_path": "crypto/async/arch/async_null.c",
      "new_id": "baed88402090591f3eedb953e8c7eb3aca796ac0",
      "new_mode": 33188,
      "new_path": "crypto/async/arch/async_null.c"
    },
    {
      "type": "modify",
      "old_id": "77a2c33de607dbc9f6b32e61e7f8ac1e5d839b87",
      "old_mode": 33188,
      "old_path": "crypto/async/arch/async_posix.c",
      "new_id": "30075810baeb33de2e1951047cc9ee4537b4949c",
      "new_mode": 33188,
      "new_path": "crypto/async/arch/async_posix.c"
    },
    {
      "type": "modify",
      "old_id": "36fae2478865603558b4c6d72f666b0ef4cae108",
      "old_mode": 33188,
      "old_path": "crypto/async/arch/async_posix.h",
      "new_id": "c247888b671e817bcbf3c398440d31a4846ba3f4",
      "new_mode": 33188,
      "new_path": "crypto/async/arch/async_posix.h"
    },
    {
      "type": "modify",
      "old_id": "20c8a09bc4067835ea38186eb671cfbf92198883",
      "old_mode": 33188,
      "old_path": "crypto/async/arch/async_win.c",
      "new_id": "519476c397a4028972896854b78f82cfecb4a632",
      "new_mode": 33188,
      "new_path": "crypto/async/arch/async_win.c"
    },
    {
      "type": "modify",
      "old_id": "77e41e405b9e8486465ae845030ea8b2b9f0b085",
      "old_mode": 33188,
      "old_path": "crypto/async/arch/async_win.h",
      "new_id": "b247f59e48c8e6e317947b5000452e94a799c43a",
      "new_mode": 33188,
      "new_path": "crypto/async/arch/async_win.h"
    },
    {
      "type": "modify",
      "old_id": "5664d990b6909706094af927d11a33b9c231ad35",
      "old_mode": 33188,
      "old_path": "crypto/async/async.c",
      "new_id": "031ca039e485cac2c353846d1a2c3a128c53199d",
      "new_mode": 33188,
      "new_path": "crypto/async/async.c"
    },
    {
      "type": "modify",
      "old_id": "a463bf1c229e9b49c1716f26c42269011ebd9879",
      "old_mode": 33188,
      "old_path": "crypto/async/async_locl.h",
      "new_id": "ffb34f82e50982cce47080316b4ac01366d9ddd2",
      "new_mode": 33188,
      "new_path": "crypto/async/async_locl.h"
    }
  ]
}
