)]}'
{
  "commit": "4375beb477c73e8ccc82dba3f921caa9d87f3abb",
  "tree": "3e29a0d3f4f492bd41f11b4f4fea79a5de17f08e",
  "parents": [
    "efbbf31023483691a9467124a38bf8103f41d3ae"
  ],
  "author": {
    "name": "Roman Arutyunyan",
    "email": "arut@nginx.com",
    "time": "Tue Jul 04 18:07:29 2017 +0300"
  },
  "committer": {
    "name": "Roman Arutyunyan",
    "email": "arut@nginx.com",
    "time": "Tue Jul 04 18:07:29 2017 +0300"
  },
  "message": "Resolver: fixed possible use-after-free while resolving SRV.\n\nResolving an SRV record includes resolving its host names in subrequests.\nPreviously, if memory allocation failed while reporting a subrequest result\nafter receiving a response from a DNS server, the SRV resolve handler was\ncalled immediately with the NGX_ERROR state.  However, if the SRV record\nincluded another copy of the resolved name, it was reported once again.\nThis could trigger the use-after-free memory access after SRV resolve\nhandler freed the resolve context by calling ngx_resolve_name_done().\n\nNow the SRV resolve handler is called only when all its subrequests are\ncompleted.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "91f8a5ef30163034040cd686887a8474ba9302ea",
      "old_mode": 33188,
      "old_path": "src/core/ngx_resolver.c",
      "new_id": "91231f2329a8839e480ca623bf0c7a3810ca4591",
      "new_mode": 33188,
      "new_path": "src/core/ngx_resolver.c"
    }
  ]
}
