)]}'
{
  "commit": "31b3a2b31a50f83ed100e01485013fd871399f45",
  "tree": "aeece5130880a698b56eec044d73925e7e5ae7f3",
  "parents": [
    "a88e3a16ae711f6523ad3a40a08d774b72adc9eb"
  ],
  "author": {
    "name": "Tom Sepez",
    "email": "tsepez@chromium.org",
    "time": "Mon May 18 14:18:08 2015 -0700"
  },
  "committer": {
    "name": "Tom Sepez",
    "email": "tsepez@chromium.org",
    "time": "Mon May 18 14:18:08 2015 -0700"
  },
  "message": "Add safe FX_Alloc2D() macro\n\nThis avoids unchecked multiplications when computing a size argument\nto malloc(). Such an overflow is very scary, and can result in\nexploitable bugs.\n\nAlong the way, kill off some return checks, since we know this can\u0027t\nreturn NULL.\n\nR\u003dthestig@chromium.org\n\nReview URL: https://codereview.chromium.org/1143663004\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bd53d9e7a4123e10754dec314e76eefacb916fb0",
      "old_mode": 33188,
      "old_path": "core/include/fxcrt/fx_basic.h",
      "new_id": "f258029a1122218ba0e5985a98339b58d0cf4288",
      "new_mode": 33188,
      "new_path": "core/include/fxcrt/fx_basic.h"
    },
    {
      "type": "modify",
      "old_id": "afce91169a9110cfc94e01677ee5476a3dad2580",
      "old_mode": 33188,
      "old_path": "core/include/fxcrt/fx_memory.h",
      "new_id": "a75ff2581870f8a08ea344a1edcf1b20aa61452d",
      "new_mode": 33188,
      "new_path": "core/include/fxcrt/fx_memory.h"
    },
    {
      "type": "modify",
      "old_id": "3a3756de5d748c563f95890edf89fa732b12f71d",
      "old_mode": 33188,
      "old_path": "core/src/fpdfapi/fpdf_edit/fpdf_edit_image.cpp",
      "new_id": "1328fcdf96a4d9a0401b7bff9ee33ab0ac6cd968",
      "new_mode": 33188,
      "new_path": "core/src/fpdfapi/fpdf_edit/fpdf_edit_image.cpp"
    },
    {
      "type": "modify",
      "old_id": "6911942c0e8ca454b8ec7628e0b89bd27f3c86f6",
      "old_mode": 33188,
      "old_path": "core/src/fpdfapi/fpdf_font/fpdf_font_cid.cpp",
      "new_id": "a08660c52fcf6a0500e1b07dac77222311d73854",
      "new_mode": 33188,
      "new_path": "core/src/fpdfapi/fpdf_font/fpdf_font_cid.cpp"
    },
    {
      "type": "modify",
      "old_id": "b6bf7950ff5c026f127fea88278cbc4466c81a31",
      "old_mode": 33188,
      "old_path": "core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp",
      "new_id": "8b9ff8ea96615ee5598dbad57980ff2db690bd8d",
      "new_mode": 33188,
      "new_path": "core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp"
    },
    {
      "type": "modify",
      "old_id": "bd1cdb64342c31dbd3529d0d7681278281967c15",
      "old_mode": 33188,
      "old_path": "core/src/fpdfapi/fpdf_page/fpdf_page_func.cpp",
      "new_id": "8ec490a9e87a40f95be7080b067cfe96cea27569",
      "new_mode": 33188,
      "new_path": "core/src/fpdfapi/fpdf_page/fpdf_page_func.cpp"
    },
    {
      "type": "modify",
      "old_id": "ac3f2b29d73ce0a140854762cb0b0aa3872a12d1",
      "old_mode": 33188,
      "old_path": "core/src/fpdfapi/fpdf_parser/fpdf_parser_filters.cpp",
      "new_id": "6fa7419a419dfe78f90d9eaee9361502af962668",
      "new_mode": 33188,
      "new_path": "core/src/fpdfapi/fpdf_parser/fpdf_parser_filters.cpp"
    },
    {
      "type": "modify",
      "old_id": "658fc47266989decd65d77f2df5f4978670b0539",
      "old_mode": 33188,
      "old_path": "core/src/fpdfapi/fpdf_render/fpdf_render_cache.cpp",
      "new_id": "83d5f0a4c1706bb073f1979cada15d1a2d91a6ef",
      "new_mode": 33188,
      "new_path": "core/src/fpdfapi/fpdf_render/fpdf_render_cache.cpp"
    },
    {
      "type": "modify",
      "old_id": "2d7e1aeb93add6b400ddb1e910591312dc75515f",
      "old_mode": 33188,
      "old_path": "core/src/fpdfapi/fpdf_render/fpdf_render_pattern.cpp",
      "new_id": "f9eec23f7a1a2f077de9f22491f43a34642bb3ff",
      "new_mode": 33188,
      "new_path": "core/src/fpdfapi/fpdf_render/fpdf_render_pattern.cpp"
    },
    {
      "type": "modify",
      "old_id": "6c1e22563d3776ddca36cf1081126ba39253023e",
      "old_mode": 33188,
      "old_path": "core/src/fpdftext/fpdf_text.cpp",
      "new_id": "a0b01042e1d4f542de609ec96f77a135b12bbe71",
      "new_mode": 33188,
      "new_path": "core/src/fpdftext/fpdf_text.cpp"
    },
    {
      "type": "modify",
      "old_id": "667b713df82f3e7ee88943da02e001c4a162c210",
      "old_mode": 33188,
      "old_path": "core/src/fxcodec/codec/fx_codec_fax.cpp",
      "new_id": "33e89e4f92b52f9ff5219d42f5456b354ac924db",
      "new_mode": 33188,
      "new_path": "core/src/fxcodec/codec/fx_codec_fax.cpp"
    },
    {
      "type": "modify",
      "old_id": "bbee167f3dafbadfa941c368b89f7cd79d79ac2d",
      "old_mode": 33188,
      "old_path": "core/src/fxcodec/codec/fx_codec_flate.cpp",
      "new_id": "4d43cc554b4cf8344cb9df2fa7bdad8b6a7bc956",
      "new_mode": 33188,
      "new_path": "core/src/fxcodec/codec/fx_codec_flate.cpp"
    },
    {
      "type": "modify",
      "old_id": "d4c9926254c71a2e4ad0380e171f065de7fe0a18",
      "old_mode": 33188,
      "old_path": "core/src/fxcodec/codec/fx_codec_jpeg.cpp",
      "new_id": "60575d4e343bdc27125806d6a37f2ace3e0998ec",
      "new_mode": 33188,
      "new_path": "core/src/fxcodec/codec/fx_codec_jpeg.cpp"
    },
    {
      "type": "modify",
      "old_id": "9bdc607bfea70d444e3edde2fd7cd065f67bfcd4",
      "old_mode": 33188,
      "old_path": "core/src/fxcrt/fx_basic_array.cpp",
      "new_id": "5a2a2e54a189e94fbbc305ecc25684ac0701992e",
      "new_mode": 33188,
      "new_path": "core/src/fxcrt/fx_basic_array.cpp"
    },
    {
      "type": "modify",
      "old_id": "565021d29e08880eb283b4e689abe92eba844fb7",
      "old_mode": 33188,
      "old_path": "core/src/fxcrt/fx_basic_memmgr_unittest.cpp",
      "new_id": "c70f3b197d53777ee50fa23ac9601a4851d653bd",
      "new_mode": 33188,
      "new_path": "core/src/fxcrt/fx_basic_memmgr_unittest.cpp"
    },
    {
      "type": "modify",
      "old_id": "8c4b701ebe349038b3555f271732f87bc3d59cd4",
      "old_mode": 33188,
      "old_path": "core/src/fxge/agg/agg23/fx_agg_path_storage.cpp",
      "new_id": "b4b184e0a4abcc859574dff1afc67c1490b26248",
      "new_mode": 33188,
      "new_path": "core/src/fxge/agg/agg23/fx_agg_path_storage.cpp"
    },
    {
      "type": "modify",
      "old_id": "5053c306f5e257931f653b7f8eb8a1a113b26c4a",
      "old_mode": 33188,
      "old_path": "core/src/fxge/dib/fx_dib_engine.cpp",
      "new_id": "7c40171c2bc5b9d4c47058f95441a2a7c7ae3f82",
      "new_mode": 33188,
      "new_path": "core/src/fxge/dib/fx_dib_engine.cpp"
    },
    {
      "type": "modify",
      "old_id": "cc4059dd1d447dce697480c35016a2fcd3da078a",
      "old_mode": 33188,
      "old_path": "core/src/fxge/skia/fx_skia_device.cpp",
      "new_id": "a483eca5ca8f18dfec3cb4d61a60dd432f9190c2",
      "new_mode": 33188,
      "new_path": "core/src/fxge/skia/fx_skia_device.cpp"
    },
    {
      "type": "modify",
      "old_id": "fae1883f4d3c4d9ea1b81db7f8e6ce503b0112c2",
      "old_mode": 33188,
      "old_path": "core/src/fxge/win32/fx_win32_gdipext.cpp",
      "new_id": "49c3f2b0cf5a5cb614e272553dae240b3d0c2a83",
      "new_mode": 33188,
      "new_path": "core/src/fxge/win32/fx_win32_gdipext.cpp"
    }
  ]
}
