)]}'
{
  "commit": "b08b04092105a917b464b5bef7fe70f18e5915dd",
  "tree": "30148d38063311ba72b08ba52839e4cedb479f7b",
  "parents": [
    "60e8ba4685bc4b9e69e3501d1f0ef4cc46b4d1c6"
  ],
  "author": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Tue Oct 02 17:46:18 2018 +0300"
  },
  "committer": {
    "name": "Maxim Dounin",
    "email": "mdounin@mdounin.ru",
    "time": "Tue Oct 02 17:46:18 2018 +0300"
  },
  "message": "SSL: fixed segfault on renegotiation (ticket #1646).\n\nIn e3ba4026c02d (1.15.4) nginx own renegotiation checks were disabled\nif SSL_OP_NO_RENEGOTIATION is available.  But since SSL_OP_NO_RENEGOTIATION\nis only set on a connection, not in an SSL context, SSL_clear_option()\nremoved it as long as a matching virtual server was found.  This resulted\nin a segmentation fault similar to the one fixed in a6902a941279 (1.9.8),\naffecting nginx built with OpenSSL 1.1.0h or higher.\n\nTo fix this, SSL_OP_NO_RENEGOTIATION is now explicitly set in\nngx_http_ssl_servername() after adjusting options.  Additionally, instead\nof c-\u003essl-\u003erenegotiation we now check c-\u003essl-\u003ehandshaked, which seems\nto be a more correct flag to test, and will prevent the segmentation fault\nfrom happening even if SSL_OP_NO_RENEGOTIATION is not working.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c80df6e66510376fe407494f45035415c0f3f92b",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_request.c",
      "new_id": "7dd28b8c265b28d6f68211b1795446ea6b4d4a04",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_request.c"
    }
  ]
}
