)]}'
{
  "commit": "0543434a6428eca24ed0244438a008dc757f9368",
  "tree": "db8f12c6c3f831fcfd3b1b8f219434f87090a3f1",
  "parents": [
    "bfbf8e61770e863ef74574a33c02e8e1bcfbf3bb"
  ],
  "author": {
    "name": "Sergey Kandaurov",
    "email": "pluknet@nginx.com",
    "time": "Tue Sep 10 15:42:34 2019 +0300"
  },
  "committer": {
    "name": "Sergey Kandaurov",
    "email": "pluknet@nginx.com",
    "time": "Tue Sep 10 15:42:34 2019 +0300"
  },
  "message": "Resolver: fixed possible use-after-free while resolving PTR.\n\nPreviously, if a response to the PTR request was cached, and ngx_resolver_dup()\nfailed to allocate memory for the resulting name, then the original node was\nfreed but left in expire_queue.  A subsequent address resolving would end up\nin a use-after-free memory access of the node either in ngx_resolver_expire()\nor ngx_resolver_process_ptr(), when accessing it through expire_queue.\n\nThe fix is to leave the resolver node intact.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "593645d5d92f141d11feeba443c4cd4a625940de",
      "old_mode": 33188,
      "old_path": "src/core/ngx_resolver.c",
      "new_id": "e51712c0a2830bd910d1ccde54bfcae7e1d95483",
      "new_mode": 33188,
      "new_path": "src/core/ngx_resolver.c"
    }
  ]
}
