)]}'
{
  "commit": "ee1045877a7e226945c7cec2bda80039bd2d0c8e",
  "tree": "00161e36d739a5ccfb44e26d25f1708bb1ddc9ab",
  "parents": [
    "59baae9a626396a3a05840279084c4bf2beb8f40"
  ],
  "author": {
    "name": "Jonathan Neuschäfer",
    "email": "j.neuschaefer@gmx.net",
    "time": "Thu Sep 03 07:27:26 2015 +0200"
  },
  "committer": {
    "name": "Riku Voipio",
    "email": "riku.voipio@linaro.org",
    "time": "Mon Sep 28 16:39:43 2015 +0300"
  },
  "message": "linux-user: fix cmsg conversion in case of multiple headers\n\nCurrently, __target_cmsg_nxthdr compares a pointer derived from\ntarget_cmsg against the msg_control field of target_msgh (through\nsubtraction).  This failed for me when emulating i386 code under x86_64,\nbecause pointers in the host address space and pointers in the guest\naddress space were not the same.  This patch passes the initial value of\ntarget_cmsg into __target_cmsg_nxthdr.\n\nI found and fixed two more related bugs:\n- __target_cmsg_nxthdr now returns the new cmsg pointer instead of the\n  old one.\n- tgt_space (in host_to_target_cmsg) doesn\u0027t count \"sizeof (struct\n  target_cmsghdr)\" twice anymore.\n\nReviewed-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nSigned-off-by: Jonathan Neuschäfer \u003cj.neuschaefer@gmx.net\u003e\nSigned-off-by: Riku Voipio \u003criku.voipio@linaro.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7fbaa8bb679b552f4082c729bcaa6c04167911fa",
      "old_mode": 33188,
      "old_path": "linux-user/syscall.c",
      "new_id": "75ac32c05d20dd5e12eaace531a9bd8bfa95fe7b",
      "new_mode": 33188,
      "new_path": "linux-user/syscall.c"
    },
    {
      "type": "modify",
      "old_id": "cdc8db421c3135517af5adbbb097a12574092793",
      "old_mode": 33188,
      "old_path": "linux-user/syscall_defs.h",
      "new_id": "7ca33a6f622b82f55dd962e8de70af1796cd184b",
      "new_mode": 33188,
      "new_path": "linux-user/syscall_defs.h"
    }
  ]
}
