)]}'
{
  "commit": "b77a5f22aca4cef2dc893ea544841bdd95dc83ba",
  "tree": "5319d41f7d1a3e12c736a2b73d66611559167e7d",
  "parents": [
    "b12f907eeaad7bd4d282502bd7f7773f95e1ee96"
  ],
  "author": {
    "name": "Hawkins Jiawei",
    "email": "yin31149@gmail.com",
    "time": "Fri Jul 07 23:27:31 2023 +0800"
  },
  "committer": {
    "name": "Michael S. Tsirkin",
    "email": "mst@redhat.com",
    "time": "Mon Jul 10 18:59:32 2023 -0400"
  },
  "message": "vhost: Fix false positive out-of-bounds\n\nQEMU uses vhost_svq_translate_addr() to translate addresses\nbetween the QEMU\u0027s virtual address and the SVQ IOVA. In order\nto validate this translation, QEMU checks whether the translated\nrange falls within the mapped range.\n\nYet the problem is that, the value of `needle_last`, which is calculated\nby `needle.translated_addr + iovec[i].iov_len`, should represent the\nexclusive boundary of the translated range, rather than the last\ninclusive addresses of the range. Consequently, QEMU fails the check\nwhen the translated range matches the size of the mapped range.\n\nThis patch solves this problem by fixing the `needle_last` value to\nthe last inclusive address of the translated range.\n\nNote that this bug cannot be triggered at the moment, because QEMU\nis unable to translate such a big range due to the truncation of\nthe CVQ command in vhost_vdpa_net_handle_ctrl_avail().\n\nFixes: 34e3c94eda (\"vdpa: Add custom IOTLB translations to SVQ\")\nSigned-off-by: Hawkins Jiawei \u003cyin31149@gmail.com\u003e\nMessage-Id: \u003cee31c5420ffc8e6a29705ddd30badb814ddbae1d.1688743107.git.yin31149@gmail.com\u003e\nReviewed-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1b1d85306cf7014abde0608c78c380977a525d8f",
      "old_mode": 33188,
      "old_path": "hw/virtio/vhost-shadow-virtqueue.c",
      "new_id": "49e5aed931b4c5c32cda1556a544f29901a29b13",
      "new_mode": 33188,
      "new_path": "hw/virtio/vhost-shadow-virtqueue.c"
    }
  ]
}
