)]}'
{
  "commit": "2c3da5238c2224a55340fa5bced5db52797be62f",
  "tree": "d19340da79aeee388dc7478b1d21d18d0b7cb7a2",
  "parents": [
    "71aaa1cea1a05852de177481275ab193a0bb62f7"
  ],
  "author": {
    "name": "Valentin Bartenev",
    "email": "vbart@nginx.com",
    "time": "Wed Mar 29 20:21:01 2017 +0300"
  },
  "committer": {
    "name": "Valentin Bartenev",
    "email": "vbart@nginx.com",
    "time": "Wed Mar 29 20:21:01 2017 +0300"
  },
  "message": "HTTP/2: fixed connection finalization.\n\nAll streams in connection must be finalized before the connection\nitself can be finalized and all related memory is freed.  That\u0027s\nnot always possible on the current event loop iteration.\n\nThus when the last stream is finalized, it sets the special read\nevent handler ngx_http_v2_handle_connection_handler() and posts\nthe event.\n\nPreviously, this handler didn\u0027t check the connection state and\ncould call the regular event handler on a connection that was\nalready in finalization stage.  In the worst case that could\nlead to a segmentation fault, since some data structures aren\u0027t\nsupposed to be used during connection finalization.  Particularly,\nthe waiting queue can contain already freed streams, so the\nWINDOW_UPDATE frame received by that moment could trigger\naccessing to these freed streams.\n\nNow, the connection error flag is explicitly checked in\nngx_http_v2_handle_connection_handler().\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "714707b2c59223b908e5d97598aa245a6d83a015",
      "old_mode": 33188,
      "old_path": "src/http/v2/ngx_http_v2.c",
      "new_id": "37cb9070cb6be5e4b196c46b9ff1729f663cc6a7",
      "new_mode": 33188,
      "new_path": "src/http/v2/ngx_http_v2.c"
    }
  ]
}
