)]}'
{
  "commit": "fff39a7ad09da07ef490de05c92c91f22f8002f2",
  "tree": "edb0d5b62569c715ca86b1aa468373048d22bc61",
  "parents": [
    "2b294f6b65c7cf1725eeecf97b16024cc565998a"
  ],
  "author": {
    "name": "Greg Kurz",
    "email": "groug@kaod.org",
    "time": "Tue Aug 30 19:11:05 2016 +0200"
  },
  "committer": {
    "name": "Peter Maydell",
    "email": "peter.maydell@linaro.org",
    "time": "Tue Aug 30 19:21:39 2016 +0100"
  },
  "message": "9pfs: forbid illegal path names\n\nEmpty path components don\u0027t make sense for most commands and may cause\nundefined behavior, depending on the backend.\n\nAlso, the walk request described in the 9P spec [1] clearly shows that\nthe client is supposed to send individual path components: the official\nlinux client never sends portions of path containing the / character for\nexample.\n\nMoreover, the 9P spec [2] also states that a system can decide to restrict\nthe set of supported characters used in path components, with an explicit\nmention \"to remove slashes from name components\".\n\nThis patch introduces a new name_is_illegal() helper that checks the\nnames sent by the client are not empty and don\u0027t contain unwanted chars.\nSince 9pfs is only supported on linux hosts, only the / character is\nchecked at the moment. When support for other hosts (AKA. win32) is added,\nother chars may need to be blacklisted as well.\n\nIf a client sends an illegal path component, the request will fail and\nENOENT is returned to the client.\n\n[1] http://man.cat-v.org/plan_9/5/walk\n[2] http://man.cat-v.org/plan_9/5/intro\n\nSuggested-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nSigned-off-by: Greg Kurz \u003cgroug@kaod.org\u003e\nReviewed-by: Eric Blake \u003ceblake@redhat.com\u003e\nReviewed-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b6b02b46a9da2ce74f6af3bf69b234670b76973a",
      "old_mode": 33188,
      "old_path": "hw/9pfs/9p.c",
      "new_id": "385269ea0ac3352f07b103f6b71fb670b69bb0e3",
      "new_mode": 33188,
      "new_path": "hw/9pfs/9p.c"
    }
  ]
}
