)]}'
{
  "commit": "71d027cfee8553e2ec28efa1ddd7fd0ecbadcc86",
  "tree": "8f9b95eeec06a759e6e58c201ce2397452fff7f4",
  "parents": [
    "8526b7d6b67beda0c83e4a8aec1449475fe5dd65"
  ],
  "author": {
    "name": "Peter Maydell",
    "email": "peter.maydell@linaro.org",
    "time": "Tue May 05 19:51:57 2026 +0100"
  },
  "committer": {
    "name": "Jason Wang",
    "email": "jasowang@redhat.com",
    "time": "Fri May 29 11:54:06 2026 +0800"
  },
  "message": "hw/net/rocker_of_dpa: Avoid unaligned accesses in _of_dpa_flow_match()\n\n_of_dpa_flow_match() tries to do masked comparisons of OfDpaFlowkey\nstructs by casting pointers to them to uint64_t* and then doing the\nmemory accesses as 64-bit. This is undefined behaviour because the\npointers might not be 64-bit aligned, and the UB sanitizer spots this:\n\n../../hw/net/rocker/rocker_of_dpa.c:321:20: runtime error: load of misaligned address 0x512000164044 for type \u0027uint64_t\u0027 (aka \u0027unsigned long\u0027), which requires 8 byte alignment\n0x512000164044: note: pointer points here\n  02 00 00 00 00 00 ff ff  00 00 00 00 ff ff ff ff  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00\n              ^\n\nWe do know that OfDpaFlowKey structs must be at least aligned enough\nfor uint32_t accesses, because that\u0027s the type of the first field.\nSwitch to using uint32_t accesses in the loop.\n\nBecause the \"width\" field is always set via the FLOW_KEY_WIDTH macro\nand not exposed to the guest, we can adjust the macro to store the\nnumber of uint32_t to be checked rather than needing to change the\nloop boundary in the match function.\n\nCc: qemu-stable@nongnu.org\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nSigned-off-by: Jason Wang \u003cjasowang@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "958f3006c1ae8f6497e12fb03a742fc4115aca51",
      "old_mode": 33188,
      "old_path": "hw/net/rocker/rocker_of_dpa.c",
      "new_id": "3d6f55b51210fe4da2097e09d2db074f1cf1b880",
      "new_mode": 33188,
      "new_path": "hw/net/rocker/rocker_of_dpa.c"
    }
  ]
}
