)]}'
{
  "commit": "ff29ed3a331d0cd26bcd30f7cd6c0c96c7d44eed",
  "tree": "6bdf3c28cedf4f6cb5a63321d846f298fceb1ab9",
  "parents": [
    "8c6b0356b53977bcfdea5299db07884915425b0c"
  ],
  "author": {
    "name": "Stefan Hajnoczi",
    "email": "stefanha@redhat.com",
    "time": "Fri Feb 14 17:17:08 2020 +0000"
  },
  "committer": {
    "name": "Stefan Hajnoczi",
    "email": "stefanha@redhat.com",
    "time": "Sat Feb 22 08:26:47 2020 +0000"
  },
  "message": "aio-posix: fix use after leaving scope in aio_poll()\n\nepoll_handler is a stack variable and must not be accessed after it goes\nout of scope:\n\n      if (aio_epoll_check_poll(ctx, pollfds, npfd, timeout)) {\n          AioHandler epoll_handler;\n          ...\n          add_pollfd(\u0026epoll_handler);\n          ret \u003d aio_epoll(ctx, pollfds, npfd, timeout);\n      } ...\n\n  ...\n\n  /* if we have any readable fds, dispatch event */\n  if (ret \u003e 0) {\n      for (i \u003d 0; i \u003c npfd; i++) {\n          nodes[i]-\u003epfd.revents \u003d pollfds[i].revents;\n      }\n  }\n\nnodes[0] is \u0026epoll_handler, which has already gone out of scope.\n\nThere is no need to use pollfds[] for epoll.  We don\u0027t need an\nAioHandler for the epoll fd.\n\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\nReviewed-by: Sergio Lopez \u003cslp@redhat.com\u003e\nMessage-id: 20200214171712.541358-2-stefanha@redhat.com\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f67f5b34e9bd443ebc29410ba1552bf1e22ac436",
      "old_mode": 33188,
      "old_path": "util/aio-posix.c",
      "new_id": "c964627a03b0353b3eed8d1fb04f8438d13d892f",
      "new_mode": 33188,
      "new_path": "util/aio-posix.c"
    }
  ]
}
