)]}'
{
  "commit": "4b6f8dcd2a838f0528a4de1d9c247101fe7907fb",
  "tree": "07931944c7f05bc5c07f94255b03771d25a4e220",
  "parents": [
    "f25549210d230d5e6bb3ebb81dac897b8d35f113"
  ],
  "author": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Fri Dec 21 16:13:03 2012 +0000"
  },
  "committer": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Fri Dec 21 16:13:03 2012 +0000"
  },
  "message": "Core: crypt_r() error handling fixed.\n\nThe crypt_r() function returns NULL on errors, check it explicitly instead\nof assuming errno will remain 0 if there are no errors (per POSIX, the\nsetting of errno after a successful call to a function is unspecified\nunless the description of that function specifies that errno shall not\nbe modified).\n\nAdditionally, dropped unneeded ngx_set_errno(0) and fixed error handling\nof memory allocation after normal crypt(), which was inapropriate and\nresulted in null pointer dereference on allocation failures.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "27f990e83c4ccfd27501e0995328253178537d68",
      "old_mode": 33188,
      "old_path": "src/os/unix/ngx_user.c",
      "new_id": "7a71203cb8f9eea33264ffb8d408a31e91cc842d",
      "new_mode": 33188,
      "new_path": "src/os/unix/ngx_user.c"
    }
  ]
}
