)]}'
{
  "commit": "0839207dc3fedd322d1d784e275d4d5f8cb8e970",
  "tree": "cf2ddd2523fc4c95fca11091c8f08458e7ed464b",
  "parents": [
    "90805aa3cb40414f4eecce7d16b4dc66153dd49c"
  ],
  "author": {
    "name": "Lei Zhang",
    "email": "thestig@chromium.org",
    "time": "Mon Jul 13 14:42:06 2015 -0700"
  },
  "committer": {
    "name": "Lei Zhang",
    "email": "thestig@chromium.org",
    "time": "Mon Jul 13 14:42:06 2015 -0700"
  },
  "message": "Merge to M44: Cleanup if early return from opj_j2k_copy_default_tcp_and_create_tcd().\n\nThe opj_j2k_copy_default_tcp_and_create_tcp() function memcpy\u0027s a top-level\nstruct, and then replaces pointers to memory owned by the original struct\nwith new blocks of memory. Unfortunately, an early return can leave the\ncopy with pointers to memory it doesn\u0027t own, which causes problems when\ncleaning up the partially-initialized struct.\n\nThe referenced bug is triggered when we get a return at original\nline 7969 or 7385 due to OOM.\n\nMoral of the story: creating a \"copy constructor\" equivalent\nbased on memcpy() instead of copying field by field for structs\ncontaining pointers is usually a bad idea.\n\nBUG\u003d486538\nR\u003djun_fang@foxitsoftware.com\n\nReview URL: https://codereview.chromium.org/1138033007\n\n(cherry picked from commit 3b60890f6ee807a8bfc44056443f77603c23e6b0)\n\nReview URL: https://codereview.chromium.org/1231353003 .\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "73dc5ab6fd4ced676b3b7efc9d22623a0cade63a",
      "old_mode": 33188,
      "old_path": "core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/j2k.c",
      "new_id": "c40ecc370d83afa645e4328f528a3e6f2182856c",
      "new_mode": 33188,
      "new_path": "core/src/fxcodec/fx_libopenjpeg/libopenjpeg20/j2k.c"
    }
  ]
}
