)]}'
{
  "log": [
    {
      "commit": "fcae1490caf33105d4dde8de9319fcdf20830f29",
      "tree": "20544314cd2aabdfa672aaa485dcc190a961bbb0",
      "parents": [
        "c601ec96f9f78b616668f445c628da6428be5dc0"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Thu May 07 11:45:09 2026"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Thu May 07 11:45:09 2026"
      },
      "message": "Unroll loop in color map transform\n\nChange-Id: Idcfa92061f10472cfcf63e59df9585a76f830272\n"
    },
    {
      "commit": "c601ec96f9f78b616668f445c628da6428be5dc0",
      "tree": "362cdf4c7830949a3f8b5ebc8d285fc40b7441e1",
      "parents": [
        "24f73316aa6beee994a165917f3e3e0a17df56d6"
      ],
      "author": {
        "name": "Maryla",
        "email": "maryla@google.com",
        "time": "Thu Apr 30 09:25:43 2026"
      },
      "committer": {
        "name": "Maryla Ustarroz-Calonge",
        "email": "maryla@google.com",
        "time": "Mon May 04 08:50:02 2026"
      },
      "message": "Check that abs(rgb_step) and abs(rgb_stride) are large enough.\n\nThey should be able to contain one pixel/row respectively.\nThis is more about preventing obvious user errors than security.\nNegative step/stride values are allowed as we also allow it in other places,\nand it makes it possible to flip the image vertically and/or horizontally while converting.\n\nAlso add checks that stride*height does not overflow size_t.\n\nChange-Id: I157c1f45d099ac0dadb92e6451cf1dbc89b47696\nBug: 501461395\n"
    },
    {
      "commit": "24f73316aa6beee994a165917f3e3e0a17df56d6",
      "tree": "2e41a8145ae19c2733655ebac16014879a6ec4c5",
      "parents": [
        "42d89635a3e8559dc9d70c66e6b1690ba0d2cdb4",
        "409ccf4e108f86ceb311a01870e70d1ffd8de682"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Tue Apr 28 02:30:58 2026"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 28 02:30:58 2026"
      },
      "message": "Merge \"demux.c: remove redundant check\" into main"
    },
    {
      "commit": "409ccf4e108f86ceb311a01870e70d1ffd8de682",
      "tree": "c60ef4e564aa300f42499ef5cc51add8e747d053",
      "parents": [
        "5003e5609eedc5680b8d838a962cbb9a6e9709ce"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Thu Apr 23 21:51:07 2026"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Sat Apr 25 20:09:32 2026"
      },
      "message": "demux.c: remove redundant check\n\nThe conditional\n\n```\nif (chunk_size_padded \u003c ANMF_CHUNK_SIZE) return PARSE_ERROR;\n```\n\nin `ParseVP8XChunks()` added in `0c9546f7 Expand the muxer fuzzer`\nduplicates a check in `NewFrame()` (`actual_size \u003c min_size`). To avoid\na harmless unsigned int overflow move the `anmf_payload_size` variable\ncloser to its first use.\n\nChange-Id: I8c6398f32fcecc48b66f77653da9f38f50369907\n"
    },
    {
      "commit": "42d89635a3e8559dc9d70c66e6b1690ba0d2cdb4",
      "tree": "93a0545b6eca10d1090d0d22a414b063b7095097",
      "parents": [
        "5003e5609eedc5680b8d838a962cbb9a6e9709ce"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Thu Apr 23 20:57:46 2026"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Sat Apr 25 20:07:30 2026"
      },
      "message": "decode.h: add note about negative stride\n\nThe `WebPDecode*Into()` functions accept a negative stride, but it\nimposes a requirement on the start point of the output buffer to avoid\nan out of bounds access.\n\nBug: 505414472\nChange-Id: Ia9bbe4bcb6f65d84504cb99a865ed8d29f2930c2\n"
    },
    {
      "commit": "5003e5609eedc5680b8d838a962cbb9a6e9709ce",
      "tree": "5437b9f4d232c3810a37173488cc3aaf415c9c6c",
      "parents": [
        "5156fbf66438e1cb627effd2ebbd175fd9efb2dd",
        "e38e463dab2278aa15e43a7f36750ffe2300aef0"
      ],
      "author": {
        "name": "Maryla Ustarroz-Calonge",
        "email": "maryla@google.com",
        "time": "Thu Apr 16 13:07:48 2026"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 13:07:48 2026"
      },
      "message": "Merge \"Check output strides for SharpYuvConvert.\" into main"
    },
    {
      "commit": "5156fbf66438e1cb627effd2ebbd175fd9efb2dd",
      "tree": "36b9602e39477210fd0966d02368c9abf86995f7",
      "parents": [
        "9a151dc6476294a71af7bdcc5ce2b607805207b5"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Thu Apr 16 10:44:10 2026"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Thu Apr 16 10:44:10 2026"
      },
      "message": "Improve Select_SSE2\n\nUse the same SSE2 code as PredictorAdd11_SSE2 below\n\nChange-Id: I826d021af46a788c9d43e5aecf3c2d03488a1bcd\n"
    },
    {
      "commit": "e38e463dab2278aa15e43a7f36750ffe2300aef0",
      "tree": "d40e666aace6b46b7fdce4debfa004c42627937c",
      "parents": [
        "9a151dc6476294a71af7bdcc5ce2b607805207b5"
      ],
      "author": {
        "name": "Maryla",
        "email": "maryla@google.com",
        "time": "Thu Apr 16 08:03:21 2026"
      },
      "committer": {
        "name": "Maryla",
        "email": "maryla@google.com",
        "time": "Thu Apr 16 08:09:20 2026"
      },
      "message": "Check output strides for SharpYuvConvert.\n\nForbid negative strides and strides that are smaller than one row.\n\nBug: b/501461395\nChange-Id: I0d3a6aaa83f02d4e520a813309274c0559db64fa\n"
    },
    {
      "commit": "9a151dc6476294a71af7bdcc5ce2b607805207b5",
      "tree": "9216581484a1a381b4da72921542fc58b11a9893",
      "parents": [
        "16b9c3618a415474c4e89969a5f545be67aacd96"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Wed Apr 15 13:00:38 2026"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Wed Apr 15 13:00:38 2026"
      },
      "message": "Reorganize alpha decoding to process alpha blocks entirely.\n\nper pixel this removes:\n-  if ((col \u0026 mask) \u003d\u003d 0)\n- ++col\n- if/while (col \u003e\u003d width)\n\nChange-Id: I2c803226ed50159a1a27b54dd07b1e9dfb25d117\n"
    },
    {
      "commit": "16b9c3618a415474c4e89969a5f545be67aacd96",
      "tree": "954916e49235aa951c5778c10dac57926efebd18",
      "parents": [
        "5339483509d998936c3f184ec5a95e8c1bb4a5d9"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Apr 13 20:25:30 2026"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Apr 13 20:25:30 2026"
      },
      "message": "Remove one VP8LIsEndOfStream call\n\nThis is only needed before src is modified.\n\nChange-Id: I5c908fe2b1fc3f880ad4ccb4408ae33f7ae5e9ee\n"
    },
    {
      "commit": "5339483509d998936c3f184ec5a95e8c1bb4a5d9",
      "tree": "bfea49a799af45f068031f08a31febb12a96f5be",
      "parents": [
        "42280f480d5b921a39c6eb286719d0bca30cb61c"
      ],
      "author": {
        "name": "Kleis Auke Wolthuizen",
        "email": "github@kleisauke.nl",
        "time": "Sun Apr 12 13:45:08 2026"
      },
      "committer": {
        "name": "Kleis Auke Wolthuizen",
        "email": "github@kleisauke.nl",
        "time": "Mon Apr 13 09:03:49 2026"
      },
      "message": "dsp/cpu.c: avoid use of legacy EMSCRIPTEN definition\n\nRemoved since Emscripten 5.0.4, see commit:\nhttps://github.com/emscripten-core/emscripten/commit/39f17c3960c32c13503f8e39cc2bdd88e7eb6a86\n\nChange-Id: I7fe092cf50575b29cd4ab80b2473b32ec9a4faa6\n"
    },
    {
      "commit": "42280f480d5b921a39c6eb286719d0bca30cb61c",
      "tree": "a757584208f88afc41bc6cdcba4f25d13b33eff2",
      "parents": [
        "080044c7f2754684b37b9abc5d862d3f9757f893"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Sat Apr 11 23:02:09 2026"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Sat Apr 11 23:50:23 2026"
      },
      "message": "example/Makefile.am: fix build w/--disable-libwebpdemux\n\nAfter:\n b8814a57 Add a fuzzer for ReadAnimatedImage\n\nOnly build libanim_util when `anim_diff` and `anim_dump` are enabled.\n\nFixes:\n make[1]: *** No rule to make target \u0027../src/demux/libwebpdemux.la\u0027,\n needed by \u0027libanim_util.la\u0027.\n\nBug: 501661482\nFixed: 501661482\nChange-Id: I9e2d3a53fe836e7014711fedce4248330794f866\n"
    },
    {
      "commit": "080044c7f2754684b37b9abc5d862d3f9757f893",
      "tree": "12c890ebe14697d3d86e9c0eee22bc51145eb3e8",
      "parents": [
        "c95ed44524df91c85b419252c0711dceaaffd6d3"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Thu Apr 09 08:58:49 2026"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Thu Apr 09 09:54:52 2026"
      },
      "message": "Replace [[fallthrough]] with WEBP_FALLTHROUGH\n\nC and C++ version values based on\nhttps://en.cppreference.com/w/c/23.html and\nhttps://en.cppreference.com/w/cpp/preprocessor/replace.\n\nChange-Id: I1059fa9e17f25f05d452f8dd003ca7d421742bf7\n"
    },
    {
      "commit": "c95ed44524df91c85b419252c0711dceaaffd6d3",
      "tree": "dcc162cb14293f4e2be3a35880085e96827c3790",
      "parents": [
        "6a9eb4428260e5827e737a26823626b70239b209"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Tue Apr 07 20:06:13 2026"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Tue Apr 07 20:15:27 2026"
      },
      "message": "mux,anim: ensure all images are in ANMF chunks\n\nIn an animated file, all image chunks must be contained in ANMF chunks.\nThis fixes an assertion failure:\n\n```\nsrc/mux/muxedit.c:448 in WebPMuxError\n  GetAdjustedCanvasSize(const WebPMux *const, int *const, int *const):\n  wpi-\u003eheader !\u003d NULL\n```\n\nThe demux library already has this check.\n\nBug: 498966755\nChange-Id: I1f04088a60326b47d26d7690277192118ed8374f\n"
    },
    {
      "commit": "6a9eb4428260e5827e737a26823626b70239b209",
      "tree": "31ff61ab7ab6ffe631d1a3ef2a8ce5ed8ecdc074",
      "parents": [
        "7ab12ced1ea53d3d60ec0ff5c5554729ff88d696"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Apr 07 07:42:11 2026"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Apr 07 07:42:44 2026"
      },
      "message": "Fix potential overflow in FramesAreSimilar\n\nBug: 496807858\n\nChange-Id: Idc9af6f86a171322dd09e197dafbef59d5e4aa53\n"
    },
    {
      "commit": "7ab12ced1ea53d3d60ec0ff5c5554729ff88d696",
      "tree": "a467d8c0745455bea7c57efb2f7b63c0984eddb7",
      "parents": [
        "f51e813bf419e9886bf77f2df188c542d20c63ae",
        "3307a349edfacd0296a849bc36a1c8105c3e62d4"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Fri Apr 03 16:18:44 2026"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 16:18:44 2026"
      },
      "message": "Merge changes I45ce1744,I350d9144 into main\n\n* changes:\n  anim_encode,KeyFramePenalty: add missing cast\n  ALPHInit: move assignment closer to first use\n"
    },
    {
      "commit": "f51e813bf419e9886bf77f2df188c542d20c63ae",
      "tree": "c2b899b58409195c0317394417c3d00b0d8c9d7e",
      "parents": [
        "0c9546f7efc61eac7f79ae115c3f99c91c21c443"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Fri Apr 03 12:04:12 2026"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Fri Apr 03 13:19:24 2026"
      },
      "message": "Fix some potential integer overflows.\n\nBug: 483655390, 496629074, 496629076\nChange-Id: Idba72361915f1ecf37532a306636011001c27755\n"
    },
    {
      "commit": "3307a349edfacd0296a849bc36a1c8105c3e62d4",
      "tree": "ea3c977246f5d6bf6b5198d8586f16a0b1695661",
      "parents": [
        "c696aadf69fcfa240e713888b8057034df6e945f"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Thu Apr 02 19:29:44 2026"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Thu Apr 02 21:49:25 2026"
      },
      "message": "anim_encode,KeyFramePenalty: add missing cast\n\n`sub_frame.bitstream.size` is a `size_t`. This function intends to\ncalculate a signed penalty value from 2 instances of the variable. Both\nneed to be cast to `int64_t` to avoid the calculation being promoted to\nunsigned when `size_t` is 64 bits.\n\nFixes a (harmless) unsigned overflow warning:\n\n```\nsrc/mux/anim_encode.c:1341:60: runtime error: unsigned integer overflow:\n  106 - 108 cannot be represented in type \u0027size_t\u0027 (aka \u0027unsigned long\u0027)\n```\n\nBug: 498967191\nChange-Id: I45ce174437e5a9bfa856c4d6665f5a60869078b8\n"
    },
    {
      "commit": "c696aadf69fcfa240e713888b8057034df6e945f",
      "tree": "1f012e6ce89100a68a43951f67982013e2b10d39",
      "parents": [
        "0c9546f7efc61eac7f79ae115c3f99c91c21c443"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Thu Apr 02 17:20:09 2026"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Thu Apr 02 21:49:09 2026"
      },
      "message": "ALPHInit: move assignment closer to first use\n\nThis fixes a spurious unsigned integer overflow with invalid content:\n\n```\nsrc/dec/alpha_dec.c:61:44: runtime error: unsigned integer overflow: 0 -\n  1 cannot be represented in type \u0027size_t\u0027 (aka \u0027unsigned long\u0027)\n```\n\nBug: 498965803, 498966235, 498966511, 498967090\nChange-Id: I350d9144d0c1e4e35286e9e1ca68a574ff6f86a1\n"
    },
    {
      "commit": "0c9546f7efc61eac7f79ae115c3f99c91c21c443",
      "tree": "7f6c4ce60e72d3a2b6f382a1c2f756a89fdc4fa2",
      "parents": [
        "b8814a57f0e010969b0d9352d86fa30b855d3fa0"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Wed Apr 01 09:11:04 2026"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Wed Apr 01 11:25:56 2026"
      },
      "message": "Expand the muxer fuzzer.\n\nAnd fix a few bugs it already found.\n\nBug: 497882857\n\nChange-Id: I4af63d7e7fece0686dac931d54a5e855353aaa3a\n"
    },
    {
      "commit": "b8814a57f0e010969b0d9352d86fa30b855d3fa0",
      "tree": "15b293c06953d789e0c53d9c242de130863ea7b4",
      "parents": [
        "a7441f563041b4e5db1baf0deabb3e5c4203efd6"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Fri Mar 27 13:49:51 2026"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Mar 30 08:52:48 2026"
      },
      "message": "Add a fuzzer for ReadAnimatedImage\n\nBug: 496629074\nChange-Id: Ie984f0eab67e8e6eda44abeedf9c13aa213dd340\n"
    },
    {
      "commit": "a7441f563041b4e5db1baf0deabb3e5c4203efd6",
      "tree": "9db333475cff25484786a6d6a618aeb58393ae98",
      "parents": [
        "08bc1239bd9a35fbaee0b9e02288161a81012c76",
        "d9bf5734bb3975600f50e62361cae39901627fc6"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Sat Mar 28 12:09:20 2026"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 28 12:09:20 2026"
      },
      "message": "Merge \"Fix some harmless potential overflows.\" into main"
    },
    {
      "commit": "d9bf5734bb3975600f50e62361cae39901627fc6",
      "tree": "ec240242eb24310153ce56b72df59798cecff055",
      "parents": [
        "5755839a4772de6123628bb0c61996d7c42a0454"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Fri Mar 27 21:09:00 2026"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Fri Mar 27 21:09:00 2026"
      },
      "message": "Fix some harmless potential overflows.\n\nChange-Id: Iebf78971f43b795d90e05316540ce00ba79443dc\n"
    },
    {
      "commit": "08bc1239bd9a35fbaee0b9e02288161a81012c76",
      "tree": "6732fa26a3aef75dc26cce8e079a375815520c39",
      "parents": [
        "5755839a4772de6123628bb0c61996d7c42a0454"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Fri Mar 27 16:22:57 2026"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Fri Mar 27 16:24:33 2026"
      },
      "message": "README.md: update bug tracker link\n\nUse a direct link to the creation page to avoid WebP bugs being filed\nunder the top-level WebM component when the \u0027Create Issue\u0027 button is\nused.\n\nChange-Id: Ibe5990e5a1c7cb6bcf159850fb3bceadbbfc16f1\n"
    },
    {
      "commit": "5755839a4772de6123628bb0c61996d7c42a0454",
      "tree": "8dfad339324b5c816da84557a86f04df1ad46e28",
      "parents": [
        "d25c11493a69cb81452db4f0d4d762a9a2da685e"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Mar 24 09:38:24 2026"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Mar 24 09:38:24 2026"
      },
      "message": "Limit the amount of RAM allocated for Huffman trees\n\nThis will help excessive memory allocation for images not encoded\nby libwebp.\n\nBUG: 494764367\nChange-Id: I95fc345df541d8b134e455c8c33a496f46746655\n"
    },
    {
      "commit": "d25c11493a69cb81452db4f0d4d762a9a2da685e",
      "tree": "e0301cba6018e929f990987ca5d4db0e8852034e",
      "parents": [
        "561325651c9087015f665dd953574824a3dd9b92"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Mar 16 14:33:09 2026"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Mar 16 14:33:09 2026"
      },
      "message": "Remove unreachable condition\n\nChange-Id: I9149d1574f72e6ecb532300712660abb29d0d027\n"
    },
    {
      "commit": "561325651c9087015f665dd953574824a3dd9b92",
      "tree": "7787bb4bcd9c511b144e90cc8d058dea39282b29",
      "parents": [
        "f342dfc1756785df8803d25478bf664c0de629de"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Sun Mar 15 19:20:50 2026"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Sun Mar 15 19:20:50 2026"
      },
      "message": "Fix PNM decoder in case of missing tags\n\nChange-Id: I6a760ff02d94f6af969d483e3f3e2731ad7eb41e\n"
    },
    {
      "commit": "f342dfc1756785df8803d25478bf664c0de629de",
      "tree": "a99e60c2fc9ba9759e3a37fb117285f6cf3042c9",
      "parents": [
        "d29e00aa708243ff9945989a0e4e3c8cf6dbf152"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Feb 09 09:32:39 2026"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Feb 09 09:32:39 2026"
      },
      "message": "Reduce the number of pixels in crunch mode for the fuzzer\n\nBUG: oss-fuzz:482603188\nChange-Id: Iab8c2eb9d00efa06fa148642c86b6a4f99a5a791\n"
    },
    {
      "commit": "d29e00aa708243ff9945989a0e4e3c8cf6dbf152",
      "tree": "4240243aecfa29292f31ed9e16742dc357e3d1fd",
      "parents": [
        "45102247a82396fabac5241c64305b13ed711335"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Thu Feb 05 00:44:48 2026"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Thu Feb 05 21:07:59 2026"
      },
      "message": "anim_decode: fix overflow in ZeroFillFrameRect\n\nThis function was missed in 1c364400 (prevent 32b overflow for very\nlarge canvas_width / height) when related functions were updated.\n\nBug: 481737032\nChange-Id: If55cc0490e5ed4f3fc3da07d9b4a5cd921a107ee\n"
    },
    {
      "commit": "45102247a82396fabac5241c64305b13ed711335",
      "tree": "e2111e4b0141bc7004c739a0412f893158a0fd05",
      "parents": [
        "d52b9ee34d6bb8fb7a190fe359d8560cfc2afc91"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Dec 23 16:09:14 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Wed Dec 24 14:10:53 2025"
      },
      "message": "Use proper image dependency targets now that CMake \u003e\u003d 3.16\n\nThis removes some include_directories that can create confusion on\nOSX.\n\nBUG: 470992419\n\nChange-Id: I213c8b0482be6bce845852773557f92821e897d3\n"
    },
    {
      "commit": "d52b9ee34d6bb8fb7a190fe359d8560cfc2afc91",
      "tree": "541d02c5ff980973589ee9ae636163e9593ac9f9",
      "parents": [
        "9b78419750c9c0aab8b23d5fc22dd0c729334553"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Dec 23 11:33:21 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Dec 23 15:54:48 2025"
      },
      "message": "Be consistent with the includes in non-src folders.\n\nBUG: 470992419\n\nChange-Id: I55618205da7dcfe17d96a7c3ee69d924a63d1acf\n"
    },
    {
      "commit": "9b78419750c9c0aab8b23d5fc22dd0c729334553",
      "tree": "0ec4046c16f83d3a699686b026c73ee57185da2a",
      "parents": [
        "d078f7d2013628431b4e98cbba5fc394f6e1d0d3"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Fri Dec 19 22:02:19 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Dec 23 09:59:13 2025"
      },
      "message": "Fix potential memory leak for big rescaling\n\nThat only happens when the rescaling buffer from WebPRescalerInit\ndoes not fit in a size_t, so on 32-bit or less.\n\nChange-Id: I18a79106d0c47f7ddf130099dde0fec6f2a2301d\n"
    },
    {
      "commit": "d078f7d2013628431b4e98cbba5fc394f6e1d0d3",
      "tree": "9592f6a9507bc2dff712a740bf542d3a065e00b9",
      "parents": [
        "a9f3b447ae0c435aebb8abc8bced72823fe852a7"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Fri Dec 19 09:10:35 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Fri Dec 19 09:58:16 2025"
      },
      "message": "Fix fuzzer when one scaled dimension is 0\n\nBUG: 470038406\n\nChange-Id: If64f841bde21ca80822d6c4e0f228b7d00f326d7\n"
    },
    {
      "commit": "a9f3b447ae0c435aebb8abc8bced72823fe852a7",
      "tree": "5f61f73dab74aae5fe1ca39b730c77f70ff1c2b8",
      "parents": [
        "d67d73bf5a6421734cc08da0f568d37a1fe0d103",
        "d7af7dd7cb395bc256f126c841139330afdde9a6"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Fri Dec 12 12:24:11 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 12 12:24:11 2025"
      },
      "message": "Merge \"Get code to compile with older VS with partial AVX2 support.\" into main"
    },
    {
      "commit": "d67d73bf5a6421734cc08da0f568d37a1fe0d103",
      "tree": "159c9762573a71d51c032493e6a92783b3b69fe3",
      "parents": [
        "934b7d7448c2d2850be9fa3aa4a924d51fff9823"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Tue Dec 09 20:18:25 2025"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Tue Dec 09 20:18:25 2025"
      },
      "message": "idec_dec.c: add missing WEBP_SELF_ASSIGN\n\nFixes coverity / static analysis warning:\nAssigning \"dec-\u003ealpha_data_size\" to itself has no effect.\n\nMissed in:\nb81f4620 Fix -fbounds-safety errors in `dec`.\n\nChange-Id: I0aa447dff47f1687bf1ef358a9d53f893b64bf68\n"
    },
    {
      "commit": "d7af7dd7cb395bc256f126c841139330afdde9a6",
      "tree": "306bdf9fbec384799c057a217b8237e808598b8c",
      "parents": [
        "934b7d7448c2d2850be9fa3aa4a924d51fff9823"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Dec 08 09:20:49 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Dec 09 12:25:50 2025"
      },
      "message": "Get code to compile with older VS with partial AVX2 support.\n\nThis is inspired by\nhttps://aomedia.googlesource.com/aom/+/b2f80f721fe87547e3bae73be550e3d75ba478ad/aom_ports/msvc.h#57\nThis was reported on https://github.com/opencv/opencv/pull/28139\n\nChange-Id: Iad38d842ef1647fc1a578a851b3593281855e30e\n"
    },
    {
      "commit": "934b7d7448c2d2850be9fa3aa4a924d51fff9823",
      "tree": "142d80e4412a60a0feca94ae719adfa648ac07d7",
      "parents": [
        "2d5c82155a5593e35e65ba45c378655a7905620c",
        "507c372276a8802a76afca7c8c7b7ea90c1321ee"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Dec 02 20:22:21 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 02 20:22:21 2025"
      },
      "message": "Merge \"Clarify dc[k]^ range\" into main"
    },
    {
      "commit": "2d5c82155a5593e35e65ba45c378655a7905620c",
      "tree": "852374f52dfca2755ccc3c2b64bd97cf306da9d9",
      "parents": [
        "4c7aaa92e4ff8a5d3c926263c72a717075f13156",
        "b81f462050f2b8e822f57ea541c1ba712028ca98"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Tue Dec 02 17:51:09 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 02 17:51:09 2025"
      },
      "message": "Merge \"Fix -fbounds-safety errors in `dec`.\" into main"
    },
    {
      "commit": "507c372276a8802a76afca7c8c7b7ea90c1321ee",
      "tree": "f25d2fd16a56cd8cd64ed381deb19d862ee1767b",
      "parents": [
        "4c7aaa92e4ff8a5d3c926263c72a717075f13156"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Dec 02 16:52:43 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Dec 02 17:05:43 2025"
      },
      "message": "Clarify dc[k]^ range\n\nChange-Id: If748958c8dd4f82bbef974aa4f40a4d0a758d10b\n"
    },
    {
      "commit": "4c7aaa92e4ff8a5d3c926263c72a717075f13156",
      "tree": "d05f321c9db4e621a88b44067635bcf5f6c1bda5",
      "parents": [
        "f776da44f483afb7e5937a2a91dc98048082c64d"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Dec 02 12:54:25 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Dec 02 12:54:25 2025"
      },
      "message": "More fuzzer fixes\n\n- allow for malloc to return 0.\n- do not go through big resizing\n\nBUG: oss-fuzz:4667732529577984, oss-fuzz:6595689259008000\nChange-Id: I56892bbba2fbcf5d1ceede2b56ea34612f8d13ac\n"
    },
    {
      "commit": "b81f462050f2b8e822f57ea541c1ba712028ca98",
      "tree": "85688be863a7505fabcfe5f3807e0489458ad09a",
      "parents": [
        "3532891de4e7a94081f38a56008dbd41651b0ce1"
      ],
      "author": {
        "name": "Arman Hasanzadeh",
        "email": "armanihm@google.com",
        "time": "Mon Dec 01 20:38:33 2025"
      },
      "committer": {
        "name": "Arman Hasanzadeh",
        "email": "armanihm@google.com",
        "time": "Mon Dec 01 23:02:47 2025"
      },
      "message": "Fix -fbounds-safety errors in `dec`.\n\nThis change adds -fbounds-safety annotations to several pointers in the\n`dec` directory. These annotations resolve errors and warnings that\narose from interactions with annotated functions in `utils`.\n\nBug: 465196207\nChange-Id: I89554b85b19cd068c619c3ed2a31c36eb93d552a\n"
    },
    {
      "commit": "f776da44f483afb7e5937a2a91dc98048082c64d",
      "tree": "2b8400c6e3ba67f3fb85f446e587a71b6a856261",
      "parents": [
        "4fc426c4619b4397125de3d04bbfd2edc7d8b063"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Dec 01 11:59:27 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Dec 01 11:59:27 2025"
      },
      "message": "Make uint32_t multiplication explicitly uint64_t\n\nThere cannot be any overflow in practice, this is to quiet some\nanalyzer.\n\nChange-Id: Ib76fc13aa27b72063ba6032f659987f47bb57117\n"
    },
    {
      "commit": "4fc426c4619b4397125de3d04bbfd2edc7d8b063",
      "tree": "4e55c27fd384ad88f128e338b7d228cc1428776d",
      "parents": [
        "770ca097e7b061bf9b28ffe85622ba68165889a2"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Fri Nov 28 08:52:32 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Fri Nov 28 08:52:32 2025"
      },
      "message": "Force bash for fuzz tests\n\nChange-Id: I73777b3285354d26a65b70665967d6f82d6a4db4\n"
    },
    {
      "commit": "770ca097e7b061bf9b28ffe85622ba68165889a2",
      "tree": "ccf415b7156807fcb12b42371ce8e9fd9e6510ad",
      "parents": [
        "488f26bc161d702514e351a35ac3a60f0e1d29d7"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Thu Nov 27 09:02:32 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Thu Nov 27 09:02:32 2025"
      },
      "message": "Remove the other -rss_limit_mb\u003d used by oss-fuzz\n\nChange-Id: I21689d30c2665138d38ec13ff71a209e46ca3fea\n"
    },
    {
      "commit": "488f26bc161d702514e351a35ac3a60f0e1d29d7",
      "tree": "a624a36e70d977222f9bda107a3d631110f5e4a5",
      "parents": [
        "3532891de4e7a94081f38a56008dbd41651b0ce1"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Wed Nov 26 13:51:20 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Wed Nov 26 13:52:11 2025"
      },
      "message": "Do not have OOM be fuzzer errors\n\nBUG: 463791651, 463746806, 463795905\n\nChange-Id: Ie2272ec1f27ae3140306a9c91abec2bb4c9d42d9\n"
    },
    {
      "commit": "3532891de4e7a94081f38a56008dbd41651b0ce1",
      "tree": "612208777cc6746a24155d7c81f00919c85f3e20",
      "parents": [
        "a3dddea9b5d0d445c24c756a406713686abf1257"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Nov 25 11:42:39 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Nov 25 11:42:39 2025"
      },
      "message": "Fix potential overflow in imageio\n\nBUG: 836597550\nChange-Id: I7c00f4cb831142113e6c27e632f989e8cd84ef76\n"
    },
    {
      "commit": "a3dddea9b5d0d445c24c756a406713686abf1257",
      "tree": "e75a74f685ee161d9428a2d715c53b1604f81985",
      "parents": [
        "5465220b038045c3c01d9959eeadef5f37a52a5d"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Nov 24 15:17:58 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Nov 24 15:17:58 2025"
      },
      "message": "Prevent some overflow during MBAnalyze\n\nkThreshold * m2 can be 17 * (16*(16*255)^2) in the worst case.\n\nChange-Id: Id9d82a7f2f933273bb04e7df37aaf724b3a69f43\n"
    },
    {
      "commit": "5465220b038045c3c01d9959eeadef5f37a52a5d",
      "tree": "cec6f9916b4d7c8b5abbf17ff61670389799bc36",
      "parents": [
        "4ebf0b0ac8888673171162ad50afbfafbada4c8f"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Nov 24 12:54:05 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Nov 24 15:16:18 2025"
      },
      "message": "Add arbitrary data for the encoding fuzzers\n\nChange-Id: Ia264e0edf742630f45d22670f5e1ead140036046\n"
    },
    {
      "commit": "4ebf0b0ac8888673171162ad50afbfafbada4c8f",
      "tree": "90e80e9197b316633e99f8865f8f1d245a48743c",
      "parents": [
        "df24b5632eca41a4c2f0fae8fa6d564793601f85"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Wed Nov 19 22:08:08 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Fri Nov 21 08:08:15 2025"
      },
      "message": "Properly validate picture dimensions for overflow\n\nChange-Id: I42735f6c651d0bb768b9c727209a7b5fe991b456\n"
    },
    {
      "commit": "df24b5632eca41a4c2f0fae8fa6d564793601f85",
      "tree": "8f51c26a62ff519c507a470b7184ab4f79259094",
      "parents": [
        "3697df15d731ffe77bebdf84997c085408df9823",
        "41c2a8d2f5fe198d6ca04bea34eb5298ac48c26b"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Tue Nov 18 19:52:34 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 18 19:52:34 2025"
      },
      "message": "Merge \"VP8ApplyNearLossless: skip alloc for small images\" into main"
    },
    {
      "commit": "3697df15d731ffe77bebdf84997c085408df9823",
      "tree": "acf907615abd11d723a956bc78bb8b9e98e32569",
      "parents": [
        "acedec6860b4fdbfc1c277212b4b96bbf838ade6",
        "05934f93b97742bfc08cb8758510ba2dc2ad14a4"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Tue Nov 18 19:52:24 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 18 19:52:24 2025"
      },
      "message": "Merge \"io_dec,CustomSetup: rm unnecessary \u0027is_alpha\u0027 check\" into main"
    },
    {
      "commit": "acedec6860b4fdbfc1c277212b4b96bbf838ade6",
      "tree": "8351b77e83ad4023a3a36724a71fe182a5a90c82",
      "parents": [
        "2760d8782718256ce0157ee7fac841ed1c69bdc8"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Thu Nov 13 21:21:08 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Nov 18 18:09:01 2025"
      },
      "message": "Update the emscripten instructions\n\nMore info at:\nhttps://wiki.libsdl.org/SDL2/README-emscripten#building-sdlemscripten\n\nChange-Id: Iaec18c6f540d0753ef07327f4a7ecde7d86cea12\n"
    },
    {
      "commit": "41c2a8d2f5fe198d6ca04bea34eb5298ac48c26b",
      "tree": "9d6ad5236bc339ae91b588c850eaa7fc36011968",
      "parents": [
        "2760d8782718256ce0157ee7fac841ed1c69bdc8"
      ],
      "author": {
        "name": "Andrzej Hunt",
        "email": "ajrhunt@google.com",
        "time": "Fri Nov 07 16:10:28 2025"
      },
      "committer": {
        "name": "Andrzej Hunt",
        "email": "ajrhunt@google.com",
        "time": "Mon Nov 17 15:12:06 2025"
      },
      "message": "VP8ApplyNearLossless: skip alloc for small images\n\nChange-Id: I193513c1fbbc5fab571014d3cfd3319d671d8949\n"
    },
    {
      "commit": "05934f93b97742bfc08cb8758510ba2dc2ad14a4",
      "tree": "e2fe55cdf8fee459b00ecb593da6b38ee139d550",
      "parents": [
        "2760d8782718256ce0157ee7fac841ed1c69bdc8"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Wed Nov 12 00:18:13 2025"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Wed Nov 12 00:18:13 2025"
      },
      "message": "io_dec,CustomSetup: rm unnecessary \u0027is_alpha\u0027 check\n\n`WebPIoInitFromOptions()` doesn\u0027t distinguish between `MODE_YUV` and\n`MODE_YUVA`, only RGB vs YUV. Removing this check also removes a\nconfusing mix up between `MODE_YUV` and `MODE_YUVA` in the conditional.\n\nChange-Id: Id46b21785433aded733ad914941398b0bd5d6b8f\n"
    },
    {
      "commit": "2760d8782718256ce0157ee7fac841ed1c69bdc8",
      "tree": "0593c7c26543b488a69009d5f3bc9d9c12d27b87",
      "parents": [
        "2d16e4ac95469ca437c5eaee2d8094ddf44889bd"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Nov 04 09:24:45 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Nov 04 09:24:45 2025"
      },
      "message": "Do not index costs out of bounds.\n\nIn practice, the value is never read.\n\nChange-Id: Idb33dad2581e597bd5e5b5c9414ae2c34f3a8ef2\n"
    },
    {
      "commit": "2d16e4ac95469ca437c5eaee2d8094ddf44889bd",
      "tree": "609f9d6aafc4dc201b6f6b689a760267830ed5fa",
      "parents": [
        "2a755e7eecd2f167a5e150551bbdbaa2c4273b84"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Nov 04 08:23:43 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Nov 04 08:23:43 2025"
      },
      "message": "Use ptrdiff_t to avoid potential int overflow\n\nChange-Id: I2a32506ee2e987b6b5a20a3f472af21b946289c3\n"
    },
    {
      "commit": "2a755e7eecd2f167a5e150551bbdbaa2c4273b84",
      "tree": "7911e71eede887659abe4e9c0d05a08a04531a30",
      "parents": [
        "d1e9c93961f45129f54db261733322c0798a864f"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Thu Oct 30 10:40:58 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Thu Oct 30 10:40:58 2025"
      },
      "message": "Set alpha to 0xff in ImportYUVAFromRGBA by default\n\nChange-Id: I09d69aff23d990bf171cc0afaec0fd60e3ba9365\n"
    },
    {
      "commit": "d1e9c93961f45129f54db261733322c0798a864f",
      "tree": "0d852fc6eb580f255268770734d6f23dd96d0050",
      "parents": [
        "160ad076323d3a6641c66f6029c37ad1a029414b",
        "ea3f3f7c00fc0d2a938b63985bd172a027d26cf1"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Wed Oct 29 03:54:15 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 29 03:54:15 2025"
      },
      "message": "Merge \"Convert additional memcpy/memsets to unsafe variants\" into main"
    },
    {
      "commit": "160ad076323d3a6641c66f6029c37ad1a029414b",
      "tree": "0b8b13ae61b88c0950c418b94c2456d157f762ce",
      "parents": [
        "4efd97e825457c5619b2ca2f3caa37c49c47c53e"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Oct 28 10:22:36 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Oct 28 10:28:23 2025"
      },
      "message": "Add a fuzzer for WebPDecoderConfig\n\nChange-Id: I156304ae361c5f18ec2705adec51dae51ff91f2e\n"
    },
    {
      "commit": "4efd97e825457c5619b2ca2f3caa37c49c47c53e",
      "tree": "59ec32a54a721c808bd433c35cfe915a11f8895a",
      "parents": [
        "3eb58b56d9a615b6308a370e949635cf7a75709a"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Oct 27 10:43:34 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Oct 28 09:09:02 2025"
      },
      "message": "Shorten sclip1\n\nThe maximum range for sclip1 is at:\nhttps://chromium.googlesource.com/webm/libwebp/+/refs/tags/v1.6.0/src/dsp/dec.c#521\nwhere:\n\nconst int a \u003d VP8ksclip1[3 * (q0 - p0) + VP8ksclip1[p1 - q1]];\n3 * 255 + 127 \u003d 892 and 3 * -255 - 128 \u003d -893\n\nChange-Id: I13f73c28fad4429c1ba69b87cd6f6c0e97f40771\n"
    },
    {
      "commit": "ea3f3f7c00fc0d2a938b63985bd172a027d26cf1",
      "tree": "3016232c46292637df3cfef407e8168379810c6c",
      "parents": [
        "ed054141687596753c8a6fbf145c452f07bf2673"
      ],
      "author": {
        "name": "mxms",
        "email": "mxms@google.com",
        "time": "Mon Oct 27 23:19:33 2025"
      },
      "committer": {
        "name": "mxms",
        "email": "mxms@google.com",
        "time": "Tue Oct 28 05:40:19 2025"
      },
      "message": "Convert additional memcpy/memsets to unsafe variants\n\nBug: 432511225\nChange-Id: I5ea1fcc2e4884985bec0b3a7618dd75dbd6c21f8\n"
    },
    {
      "commit": "3eb58b56d9a615b6308a370e949635cf7a75709a",
      "tree": "ba8ea763ef28797f11f724087929a39b63f26b63",
      "parents": [
        "ed054141687596753c8a6fbf145c452f07bf2673"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Oct 27 09:41:21 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Oct 27 09:51:41 2025"
      },
      "message": "Fix clipping arrays\n\nThose arrays are only used for filtering\n\nChange-Id: Ic609222b51ba8509fca5f1a3119213d3e78ca6ad\n"
    },
    {
      "commit": "ed054141687596753c8a6fbf145c452f07bf2673",
      "tree": "f5afa3265aca20015a8ef5fead3260c439a925e4",
      "parents": [
        "9f14c2605b9c4d993f10ee5a8254f4645ec3ddef"
      ],
      "author": {
        "name": "mxms",
        "email": "mxms@google.com",
        "time": "Fri Oct 24 04:00:01 2025"
      },
      "committer": {
        "name": "Max Shavrick",
        "email": "mxms@google.com",
        "time": "Sat Oct 25 20:40:45 2025"
      },
      "message": "Prepare decoder and demuxer for -fbounds-safety adoption\n\nChange memcpy|memset|memchr to unsafe variants\n\nAdd WEBP_ASSUME_UNSAFE_INDEXABLE_ABI to relevant files. I\u0027ve also added\nit to lossless.h, yuv.h, and decode.h as they\u0027re all imported by code in\ndec, which will have -fbounds-safety annotations.\n\nBug: 432511225\nChange-Id: I3011a0a56633b8437ead31607c7ac5f6311fa846\n"
    },
    {
      "commit": "9f14c2605b9c4d993f10ee5a8254f4645ec3ddef",
      "tree": "aedf5c642db540b6131dc22e62c09509005d0f02",
      "parents": [
        "3066c7ea5912d9b136f9cb6bb6093b923ae1efda",
        "0ee1a5f4b02c0e1e6c172b67192bb056c395b2fa"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Wed Oct 22 19:53:30 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 22 19:53:30 2025"
      },
      "message": "Merge \"Move non-abi breaking annotations into types.h\" into main"
    },
    {
      "commit": "0ee1a5f4b02c0e1e6c172b67192bb056c395b2fa",
      "tree": "260acbd001fc25dc1f424e826decc6477c2c7767",
      "parents": [
        "23359a1039d054b6e46ca97fa8789a755457fbd5"
      ],
      "author": {
        "name": "mxms",
        "email": "mxms@google.com",
        "time": "Tue Oct 21 04:03:27 2025"
      },
      "committer": {
        "name": "mxms",
        "email": "mxms@google.com",
        "time": "Wed Oct 22 01:53:59 2025"
      },
      "message": "Move non-abi breaking annotations into types.h\n\nBy moving non-abi breaking annotations into types.h, this enables us to\nmark more of libwebp as unsafe to allow better interop with struct\nmembers which default to __single.\n\nChange-Id: I54b78f68581e41389538f7332989c04c2e02ccc7\nBug: webp:432511225\n"
    },
    {
      "commit": "3066c7ea5912d9b136f9cb6bb6093b923ae1efda",
      "tree": "4543d3e24f7836df741aca75c28666a427f4d6ef",
      "parents": [
        "23359a1039d054b6e46ca97fa8789a755457fbd5",
        "bbbf29a9b6f0f383df35b6bc9380989b87806f6b"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Tue Oct 21 18:27:10 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 21 18:27:10 2025"
      },
      "message": "Merge changes I32b33cb9,I118aac97 into main\n\n* changes:\n  tests/fuzzer: apply clang-format\n  .clang-format: add DerivePointerAlignment: false\n"
    },
    {
      "commit": "23359a1039d054b6e46ca97fa8789a755457fbd5",
      "tree": "afe763abe6d76f5b1c3db1005328d357e0bd6453",
      "parents": [
        "61791c774ab6829d99398ebe6ccb6afc9d69a78f"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Fri Oct 10 09:03:26 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Fri Oct 10 09:03:26 2025"
      },
      "message": "Process rows properly in case of YUV cropping on odd lines.\n\nBug: 447845730,447958064,448792425,449246999,449546226,449781448\nChange-Id: Ie8a855b5410019ec1f618fa4d4705ae3984db444\n"
    },
    {
      "commit": "61791c774ab6829d99398ebe6ccb6afc9d69a78f",
      "tree": "4a05efd718c18256324bd19809349a3707e01a05",
      "parents": [
        "e40787da7188083075ca2f0dc7e947a569b228e7"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Fri Oct 10 07:12:33 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Fri Oct 10 07:22:25 2025"
      },
      "message": "Expand the 64-bit platforms for VP8LBitWriter\n\nThe defines are the same as the ones in bit_reader_utils.h\n\nChange-Id: I3782425baf7dfb861dcc39d7683fba5c15e33f84\n"
    },
    {
      "commit": "e40787da7188083075ca2f0dc7e947a569b228e7",
      "tree": "8e4bd807686c053e458db32c986d6b38484f33cd",
      "parents": [
        "9636d8e04f1a7fdfb450baf8bffecafd95223ef1"
      ],
      "author": {
        "name": "mxms",
        "email": "mxms@google.com",
        "time": "Thu Oct 09 16:37:22 2025"
      },
      "committer": {
        "name": "mxms",
        "email": "mxms@google.com",
        "time": "Thu Oct 09 16:38:41 2025"
      },
      "message": "Add WEBP_UNSAFE_MEMCMP helper\n\nMemcmp is used in other parts of libwebp which we didn\u0027t see yet in\nwebputils. The places that use memcp use it as an expression, (i.e. if\n(memcmp(...)), so explicitly do not wrap in do { } while (0) guard.\n\nChange-Id: Ifa972640bae052717a1af02112c62dc197dfe0f1\n"
    },
    {
      "commit": "9636d8e04f1a7fdfb450baf8bffecafd95223ef1",
      "tree": "8f43f14bc215563963e817c66b32bbb05d305968",
      "parents": [
        "64dce5d826c1e6db45585ecc29dd2fcf4d989d1d"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Thu Oct 09 08:19:04 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Thu Oct 09 08:19:04 2025"
      },
      "message": "Restrict MSAN fixes to old clang versions\n\nBug: 448420960\nChange-Id: Ia9cb762bc9f5d9415a28ddebaf39855c46a51768\n"
    },
    {
      "commit": "bbbf29a9b6f0f383df35b6bc9380989b87806f6b",
      "tree": "e6b8590ca86b70a52881384efd34c0b3166337a8",
      "parents": [
        "7a155ce913f42baf480b6cf9477f8185aadbcbf2"
      ],
      "author": {
        "name": "clang-format",
        "email": "noreply@google.com",
        "time": "Thu Oct 09 02:02:55 2025"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Thu Oct 09 02:02:55 2025"
      },
      "message": "tests/fuzzer: apply clang-format\n\nChange-Id: I32b33cb911fe828b0c3f777e4e35fcd7b65068fb\n"
    },
    {
      "commit": "7a155ce913f42baf480b6cf9477f8185aadbcbf2",
      "tree": "dc0a1f23079db3e9e5f37a0b2f8b5315871a68ad",
      "parents": [
        "64dce5d826c1e6db45585ecc29dd2fcf4d989d1d"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Thu Oct 09 01:57:03 2025"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Thu Oct 09 01:59:17 2025"
      },
      "message": ".clang-format: add DerivePointerAlignment: false\n\nThis will become the default in later versions of clang-format with\n--style\u003dGoogle. This will normalize the pointer alignment in the\nfuzzers.\n\nChange-Id: I118aac9758ab2a1af82a907ee61f4a7af88209b1\n"
    },
    {
      "commit": "64dce5d826c1e6db45585ecc29dd2fcf4d989d1d",
      "tree": "14d6830cf9595a0e78b5b636e8c8f3cd7fb68a51",
      "parents": [
        "1f0a494e8006eed3d0e9ee8d04aee270bf8f4216"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Mon Oct 06 20:49:20 2025"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Mon Oct 06 22:23:36 2025"
      },
      "message": "api.md: mention \u0027exact\u0027 default in WebPEncodeLossless*\n\nNote that config.exact defaults to 0 and point users to WebPEncode() if\nthe default isn\u0027t acceptable. This duplicates the comment from encode.h\nfor visibility. Follow up to:\n6d2e11ec encode.h: mention \u0027exact\u0027 default in WebPEncodeLossless*\n\nBug: 449296530\nChange-Id: Iba44dbcbb179bd80ea0a6b9e129b2c7e0a406916\n"
    },
    {
      "commit": "1f0a494e8006eed3d0e9ee8d04aee270bf8f4216",
      "tree": "1573bd0f5b45b855714026ed4027f39af8067c29",
      "parents": [
        "0e5f4ee3deaba5c4381877764005d981f652791f"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Wed Oct 01 07:15:34 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Wed Oct 01 07:15:34 2025"
      },
      "message": "Fix 32 bit writing in VP8LPutBits\n\n\u003e\u003e32 is undefined. VP8LPutBits is never called for 32 bits in the\npipeline though.\n\nChange-Id: I11f0a4c15380ab94213adab25f06b2ab73e73519\n"
    },
    {
      "commit": "0e5f4ee3deaba5c4381877764005d981f652791f",
      "tree": "ca370ad0f965a6ee616c1fa414a4bbf83c47a8b5",
      "parents": [
        "158b533d3e4a2f28ff039828b00135b22c1c0a07"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Sep 29 12:33:56 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Sep 29 20:26:10 2025"
      },
      "message": "Fix endianness with CMake.\n\nOriginal patch from C. Neidahl.\n\nChange-Id: I734d7cb33c3da5abb8d4faf074277dba53b37147\n"
    },
    {
      "commit": "158b533d3e4a2f28ff039828b00135b22c1c0a07",
      "tree": "706553862e52f3df5d1cb6ae6a598fd5fe8bdee8",
      "parents": [
        "13f42ea2d23643c9520e0d1f94102e4703f2c648"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Sep 29 19:07:22 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Sep 29 19:11:03 2025"
      },
      "message": "Fix potential integer overflow\n\nBug: 447862936\n\nChange-Id: I58129333520facf213b7961a284e07fe04a0e55e\n"
    },
    {
      "commit": "13f42ea2d23643c9520e0d1f94102e4703f2c648",
      "tree": "f1aa0d713b5ab21ab2914a20b41256d7385cc169",
      "parents": [
        "74f6afd3e6ea8ff5b231ad2248b52bdcd1666c70"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Sep 29 13:29:50 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Sep 29 13:29:50 2025"
      },
      "message": "Remove dead code\n\nrg\u003d\u003dNULL is dealt with above. Reported by Coverity.\n\nChange-Id: I703698efaf9d5dd8cfd16309d3d83040a76c0749\n"
    },
    {
      "commit": "74f6afd3e6ea8ff5b231ad2248b52bdcd1666c70",
      "tree": "39d5604901357c465f410390c8adc85598a098c5",
      "parents": [
        "c00d83f6642e7838a12bb03bca94237f03cc2e00",
        "0d14d84bdb79f06ec6b23f4425138a1d8a5637de"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Sat Sep 27 11:56:31 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 27 11:56:31 2025"
      },
      "message": "Merge \"Have lossless use ImportYUVAFromRGB\" into main"
    },
    {
      "commit": "0d14d84bdb79f06ec6b23f4425138a1d8a5637de",
      "tree": "04d140e8c61458f6d48b8be6fa55c5dc00b5f966",
      "parents": [
        "fd2c2cc05ba40715a77e8bd75b0e893977e671c7"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Mon Aug 25 10:52:26 2025"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Wed Sep 24 14:43:02 2025"
      },
      "message": "Have lossless use ImportYUVAFromRGB\n\nThere was a duplicated functionality with a lower quality which\ncould lead to decoded lossless WebP to YUV being different from\nlossless WebP to PNG to YUV.\n\nThe rescaler is not using it yet.\n\nBug: 432241412\nChange-Id: Id794880957935b69729d4b34ae453551d13364dc\n"
    },
    {
      "commit": "c00d83f6642e7838a12bb03bca94237f03cc2e00",
      "tree": "af0e6bd3bd21a9fdfe00675e65a4d03fbc4d51bb",
      "parents": [
        "d5b388381230a08a2f0cb1baf5b4785e071fbeb7"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Mon Sep 22 22:25:39 2025"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Mon Sep 22 22:35:12 2025"
      },
      "message": "{xcframework,ios}build.sh: remove 32-bit targets\n\nThe armv7, armv7s and i386 iOS targets were deprecated in Xcode 14 [1]\nand failed to build with Xcode 16.4.\n\n[1]: https://developer.apple.com/documentation/xcode-release-notes/xcode-14-release-notes\nBuilding iOS projects with deployment targets for the armv7, armv7s, and\ni386 architectures is no longer supported. (92831716)\n\nChange-Id: I08d376fea64638d056258798bd7e586ca6880454\n"
    },
    {
      "commit": "d5b388381230a08a2f0cb1baf5b4785e071fbeb7",
      "tree": "a69abe91be0aa13d9280bbc628387e59a2df0f11",
      "parents": [
        "aae8a3da33edafc7c6b05f154db325be283d7251"
      ],
      "author": {
        "name": "Philippe Antoine",
        "email": "p.antoine@catenacyber.fr",
        "time": "Sun Sep 21 18:51:59 2025"
      },
      "committer": {
        "name": "Philippe Antoine",
        "email": "p.antoine@catenacyber.fr",
        "time": "Sun Sep 21 18:51:59 2025"
      },
      "message": "fuzz: fix typo in nalloc env variable\n\nChange-Id: Icc0d48c8699b0fc8e820e89c44bfc55ddfe4d675\n"
    },
    {
      "commit": "aae8a3da33edafc7c6b05f154db325be283d7251",
      "tree": "1b945bff76e6825b18490ffcabf18f325e45a778",
      "parents": [
        "d16489f66ccd0499a60b6a0dc0ef7c95b8339877",
        "b4dbec562f0d7e075f26bfa301a5cd8475875fa6"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Thu Sep 18 19:46:00 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 18 19:46:00 2025"
      },
      "message": "Merge \"Add fbounds-safety annotations in `quant_levels_dec_utils.c/.h`.\" into main"
    },
    {
      "commit": "b4dbec562f0d7e075f26bfa301a5cd8475875fa6",
      "tree": "dfc31d11ae6c377f868e5ca8df7fbe1af8e10d66",
      "parents": [
        "3779daa97f89e007e2c8121a8d4b514ad6dcda56"
      ],
      "author": {
        "name": "Arman Hasanzadeh",
        "email": "armanihm@google.com",
        "time": "Wed Sep 17 22:31:57 2025"
      },
      "committer": {
        "name": "Arman Hasanzadeh",
        "email": "armanihm@google.com",
        "time": "Wed Sep 17 22:31:57 2025"
      },
      "message": "Add fbounds-safety annotations in `quant_levels_dec_utils.c/.h`.\n\nReasoning:\n\nImage Data Buffers:\nThe `data` parameter of `WebPDequantizeLevels` (in both .c and .h)\nand `InitParams` (src/utils/quant_levels_dec_utils.c:232) is annotated\nwith `WEBP_SIZED_BY((long)stride * height)`, as it points to the start\nof the image buffer.\n\nThe `src` and `dst` fields in `SmoothParams`\n(src/utils/quant_levels_dec_utils.c:54) are annotated as\n`WEBP_INDEXABLE`. They are initialized from `data` in `InitParams`\n(L266) and are advanced row by row using pointer arithmetic (e.g.,\n`p-\u003esrc +\u003d p-\u003estride` in `VFilter` L111, `p-\u003edst +\u003d p-\u003estride` in\n`ApplyFilter` L165). `WEBP_INDEXABLE` is used because the pointers\niterate within the buffer and are only accessed with positive indices.\n\nScratch Buffers (`SmoothParams`):\nScratch buffers are allocated in `InitParams` via `WebPSafeMalloc`.\nThe local variable `mem` holding this allocation (L245) is explicitly\nannotated as `WEBP_BIDI_INDEXABLE` to ensure safety when compiling with\nerror suppression.\n\n- `start`, `cur`, `top`: These pointers are used for iteration and\n  pointer arithmetic within the circular scratch buffer. They are\n  annotated as `WEBP_INDEXABLE`.\n- `end`: This pointer is annotated as `WEBP_BIDI_INDEXABLE` because it\n  is used in subtraction (`p-\u003eend - width`) in `InitParams` (L257) to\n  calculate `p-\u003etop`.\n- `average`: This buffer is accessed sequentially up to `width`. It is\n  annotated as `WEBP_COUNTED_BY(width)`. Initialization in `InitParams`\n  is reordered (L261) to ensure `p-\u003ewidth` is set before `p-\u003eaverage`.\n- `correction`: This lookup table requires negative indexing. To avoid\n  using `WEBP_BIDI_INDEXABLE` in the struct, it is annotated as\n  `WEBP_COUNTED_BY_OR_NULL(CORRECTION_LUT_SIZE)` (L75), pointing to the\n  start of the buffer. `CORRECTION_LUT_SIZE` is defined (L33).\n  `InitCorrectionLUT` (L188) and `ApplyFilter` (L147) calculate a local\n  middle pointer which is explicitly annotated as `WEBP_BIDI_INDEXABLE`\n  to allow safe negative indexing.\n\nLocal Pointers:\nTo ensure safety when compiling with error suppression (where locals\ndefault to unsafe), explicit annotations are added to local pointers\nderived from safe struct members:\n- `VFilter` (L87): `src`, `cur`, `top`, `out` are `WEBP_INDEXABLE`.\n- `HFilter` (L121): `in`, `out` are `WEBP_INDEXABLE`.\n- `ApplyFilter` (L145): `average`, `dst` are `WEBP_INDEXABLE`.\n- `CountLevels` (L214): `data` is `WEBP_INDEXABLE`.\n\nBug: 432511821\nChange-Id: I6bdf86f80c94a5b182c5aef7e4092fe4ea24afb8\n"
    },
    {
      "commit": "d16489f66ccd0499a60b6a0dc0ef7c95b8339877",
      "tree": "5a4ea642c967777f1929a46d58755a96e6ab5125",
      "parents": [
        "0fd008f83216727183cb2de70e7a6d880dd2fbc8",
        "fdc81cebda82e3e433c627354f33a39e19c4c398"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Wed Sep 17 22:18:26 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 17 22:18:26 2025"
      },
      "message": "Merge \"fuzz: add allocations failures injections\" into main"
    },
    {
      "commit": "0fd008f83216727183cb2de70e7a6d880dd2fbc8",
      "tree": "e2f590217f8f46bded2c88b9b50d1ba63d069efd",
      "parents": [
        "3779daa97f89e007e2c8121a8d4b514ad6dcda56"
      ],
      "author": {
        "name": "skal",
        "email": "pascal.massimino@gmail.com",
        "time": "Tue Sep 16 06:38:29 2025"
      },
      "committer": {
        "name": "skal",
        "email": "pascal.massimino@gmail.com",
        "time": "Tue Sep 16 06:48:08 2025"
      },
      "message": "sharpyuv: remove unnecessary rgb_bit_depth -\u003e bit_depth\n\nChange-Id: I1c57dd83720ee286636762f0dd5ac586930d7838\n"
    },
    {
      "commit": "3779daa97f89e007e2c8121a8d4b514ad6dcda56",
      "tree": "db3eaefd2d69d2fa3db0850de65a9807360bb8d3",
      "parents": [
        "fd2c2cc05ba40715a77e8bd75b0e893977e671c7",
        "f2372fba3b08dedaea2e583c53eab63011b4c6d1"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Wed Aug 27 19:34:36 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 27 19:34:36 2025"
      },
      "message": "Merge \"Add fbounds-safety annotations in `huffman_utils.c/.h`.\" into main"
    },
    {
      "commit": "f2372fba3b08dedaea2e583c53eab63011b4c6d1",
      "tree": "d6a773255fb01f40aab69ab512b808c7b6ecb6e5",
      "parents": [
        "2074cb4ba1ec5a03362ea671eb0b263e340cb011"
      ],
      "author": {
        "name": "Arman Hasanzadeh",
        "email": "armanihm@google.com",
        "time": "Tue Aug 26 23:04:38 2025"
      },
      "committer": {
        "name": "Arman Hasanzadeh",
        "email": "armanihm@google.com",
        "time": "Wed Aug 27 17:31:58 2025"
      },
      "message": "Add fbounds-safety annotations in `huffman_utils.c/.h`.\n\nReasoning:\n\nIn `HuffmanTablesSegment` (`src/utils/huffman_utils.h`), `start`\nwas annotated `WEBP_COUNTED_BY_OR_NULL(size)` as it points to an\nallocation of `size` elements. `curr_table` was annotated\n`WEBP_UNSAFE_INDEXABLE` because it iterates within `[start, start\n+ size)`, a bound that cannot be expressed statically in the struct\nwithout ABI changes. The code manually checks bounds for\n`curr_table` (e.g., `src/utils/huffman_utils.c:240-241`). To\nsupport the annotation on `start`, allocation sites in\n`VP8LBuildHuffmanTable` and `VP8LHuffmanTablesAllocate`\n(`src/utils/huffman_utils.c`) were refactored to assign `start` and\n`size` side-by-side, using `WEBP_BIDI_INDEXABLE` local variables to\nhold the safe pointer returned by `WebPSafeMalloc`.\n`VP8LHuffmanTablesDeallocate` was updated to set `size` to 0 when\n`start` is freed.\n\nThe `root_table` parameter of `BuildHuffmanTable`\n(`src/utils/huffman_utils.c:86`) was annotated `WEBP_BIDI_INDEXABLE` to\naccommodate accesses to secondary tables beyond the `root table` size\nsince with explicitly annotating the local variable `table`\nas `WEBP_BIDI_INDEXABLE`, `table` inherits its bounds from `root_table`.\nCall sites in `VP8LBuildHuffmanTable`\nrequired `WEBP_UNSAFE_FORGE_BIDI_INDEXABLE` to convert the unsafe\n`curr_table` to the safe `root_table`.\n\nThe `table` parameter of `ReplicateValue`\n(`src/utils/huffman_utils.c:59`) was annotated\n`WEBP_COUNTED_BY(end - step + 1)` and the function was refactored to\navoid modifying `end`. Call sites in `BuildHuffmanTable` required\n`WEBP_UNSAFE_FORGE_BIDI_INDEXABLE` because the strided access\npatterns used for Huffman table construction cannot be statically\nverified by the compiler.\n\nBug: 432511821\nChange-Id: I77c5c82ac36bc9bb79cd5119a4113ac5d62af762\n"
    },
    {
      "commit": "fd2c2cc05ba40715a77e8bd75b0e893977e671c7",
      "tree": "611048cecabac1cf415264aad33e6d7e2ff20782",
      "parents": [
        "ed8b34cf16dc88ce056f3ddaea04dcf05aadcef4",
        "94bfff3ffe5e8f2d2b60c21f91875d26725c4c3a"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Tue Aug 26 20:40:53 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 26 20:40:53 2025"
      },
      "message": "Merge \"Add canvas carryover to libwebp anim_encode\" into main"
    },
    {
      "commit": "fdc81cebda82e3e433c627354f33a39e19c4c398",
      "tree": "0f35e10cda51e48ed6d5c73440001f20ce232e3a",
      "parents": [
        "1ba05593d09bf0f9289e15970020de0b5a962eb4"
      ],
      "author": {
        "name": "Philippe Antoine",
        "email": "p.antoine@catenacyber.fr",
        "time": "Wed Jul 23 18:50:34 2025"
      },
      "committer": {
        "name": "Philippe Antoine",
        "email": "p.antoine@catenacyber.fr",
        "time": "Tue Aug 26 19:20:12 2025"
      },
      "message": "fuzz: add allocations failures injections\n\nnallocfuzz comes from https://github.com/catenacyber/nallocfuzz\n\nChange-Id: Ia5be1ffd91cccca135927f0f43da04abc8194d27\n"
    },
    {
      "commit": "ed8b34cf16dc88ce056f3ddaea04dcf05aadcef4",
      "tree": "b30025aacd9b93661f4b768e3632fde97a90fd84",
      "parents": [
        "1ba05593d09bf0f9289e15970020de0b5a962eb4",
        "b3f8ce70154770cdd9ed65336adc9a41a69c5be5"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Tue Aug 26 17:49:51 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 26 17:49:51 2025"
      },
      "message": "Merge \"WebPEstimateBestFilter: remove unneeded `stride` param\" into main"
    },
    {
      "commit": "94bfff3ffe5e8f2d2b60c21f91875d26725c4c3a",
      "tree": "25f4735c59608f7652f311846f3d29a3ef82aa9d",
      "parents": [
        "1ba05593d09bf0f9289e15970020de0b5a962eb4"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Fri Aug 22 11:39:06 2025"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Fri Aug 22 12:00:22 2025"
      },
      "message": "Add canvas carryover to libwebp anim_encode\n\nMemory footprint is increased by twice the canvas pixel count in bytes\nat encoding. There should be little impact on encoding speed because\nonly buffer allocs/reads/writes are introduced, with little to no\nadded logic. Animation encoding may be 2% slower.\n\nBug: 42340478\nChange-Id: I8f0048107a2bfbee7a8124c100f78eac93447d80\n"
    },
    {
      "commit": "1ba05593d09bf0f9289e15970020de0b5a962eb4",
      "tree": "1599932249ec60f0f7e9af26ca36f667a2ac12b7",
      "parents": [
        "2074cb4ba1ec5a03362ea671eb0b263e340cb011",
        "235286fd78c9c53738dfe30f258e1b30bc06d13c"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Thu Aug 21 19:37:16 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 21 19:37:16 2025"
      },
      "message": "Merge \"Add missing {}s to conditionals \u0026 loops\" into main"
    },
    {
      "commit": "b3f8ce70154770cdd9ed65336adc9a41a69c5be5",
      "tree": "704a30604813be4aad0a9af1901a2efd0cbedc8f",
      "parents": [
        "dab2cf21faa85efcbde2b6d785a66dbe01315feb"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Wed Aug 20 23:30:23 2025"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Thu Aug 21 17:43:24 2025"
      },
      "message": "WebPEstimateBestFilter: remove unneeded `stride` param\n\nThe calling function, `GetFilterMap()` only takes `width` and `height`;\nthe alpha data is assumed to have a stride equal to its width. The\n`WebPEstimateBestFilter()` was inconsistently using the parameters,\nsetting up the current row with `stride`, but accessing the previous one\nwith `width`.\n\nChange-Id: I9dd90222b6923eea3626e426a61bdef3985546ff\n"
    },
    {
      "commit": "2074cb4ba1ec5a03362ea671eb0b263e340cb011",
      "tree": "06db223d1151bd040c8acb7b7e6e75159a8a36f0",
      "parents": [
        "dab2cf21faa85efcbde2b6d785a66dbe01315feb",
        "1fdd4ef501296493bb87ee7a0b0d8076ef485677"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Thu Aug 21 02:06:52 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 21 02:06:52 2025"
      },
      "message": "Merge \"Add fbounds-safety annotations for `WebPRescaler`.\" into main"
    },
    {
      "commit": "1fdd4ef501296493bb87ee7a0b0d8076ef485677",
      "tree": "141f1cdbf3c5609c38e30f2ad17dcb5e256e32c7",
      "parents": [
        "ddcdfa6a4271cac0dd2c2eab1b7cc3c01620c33c"
      ],
      "author": {
        "name": "Arman Hasanzadeh",
        "email": "armanihm@google.com",
        "time": "Thu Aug 21 00:53:19 2025"
      },
      "committer": {
        "name": "Arman Hasanzadeh",
        "email": "armanihm@google.com",
        "time": "Thu Aug 21 00:56:26 2025"
      },
      "message": "Add fbounds-safety annotations for `WebPRescaler`.\n\nReasoning:\n\nThe `irow` and `frow` pointers in `WebPRescaler`\n(src/utils/rescaler_utils.h:49) were annotated with\n`WEBP_COUNTED_BY(dst_width * num_channels)`. This is based on their\ninitialization in `WebPRescalerInit` (src/utils/rescaler_utils.c:82-83)\nwhere they are assigned parts of the `work` buffer, whose total size\nis `2 * dst_width * num_channels`. The `work` parameter in\n`WebPRescalerInit` (src/utils/rescaler_utils.h:58,\nsrc/utils/rescaler_utils.c:33) was also annotated accordingly.\n\nTo satisfy the side-by-side assignment requirement for external bounds,\nassignments to `rescaler-\u003eirow` and `rescaler-\u003efrow` in\n`WebPRescalerInit` were moved closer to the assignments of\n`dst_width` and `num_channels` (src/utils/rescaler_utils.c:50-53).\nSince `work` have bound information, `WEBP_UNSAFE_MEMSET` has\nbeen changed to `memset`.\n\nIn `WebPRescalerImport` (src/utils/rescaler_utils.c:140-150), where\n`irow` and `frow` are swapped, self-assignments for `dst_width` and\n`num_channels` were added side-by-side with the pointer assignments.\nAdditionally, `WEBP_UNSAFE_FORGE_BIDI_INDEXABLE` was used for the\npointer assignments to handle the `WEBP_ASSUME_UNSAFE_INDEXABLE_ABI`\nsetting used during testing.\n\nBug: 432511821\nChange-Id: If716fb79a06dee9e807eff060806daf038810523\n"
    },
    {
      "commit": "235286fd78c9c53738dfe30f258e1b30bc06d13c",
      "tree": "87c60d8a0e59e3fb3515a23e15df9f8b1c342d26",
      "parents": [
        "dab2cf21faa85efcbde2b6d785a66dbe01315feb"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Wed Aug 20 23:22:29 2025"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Wed Aug 20 23:22:29 2025"
      },
      "message": "Add missing {}s to conditionals \u0026 loops\n\nThis was necessary after:\n44257cb8 apply clang-format\n\nWhich made some single-line statements into multi-line. Using braces on\nmulti-line statements better conforms with the Google style guide.\n\nBug: 433996651\nChange-Id: I615c0ecf3b94571f67fceadfe8c15914aea45ccb\n"
    },
    {
      "commit": "dab2cf21faa85efcbde2b6d785a66dbe01315feb",
      "tree": "27400029042da1ca8469ab3c9c9eb76cfd1a6a48",
      "parents": [
        "b7d30cfd94e8f5f6b6010f9ce4d21a1713e68b29",
        "52135b8e00dadd3cb2cf37b95ad0a62227a0371a"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Wed Aug 20 22:10:00 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 20 22:10:00 2025"
      },
      "message": "Merge \"Add fbounds-safety annotations in `palette.c/.h`.\" into main"
    },
    {
      "commit": "b7d30cfd94e8f5f6b6010f9ce4d21a1713e68b29",
      "tree": "4874ccbb7dd53cb49c7eeaaf79b90b5d68ab3966",
      "parents": [
        "17ba97c149d9e4b3cb5348109494b7aba74775d2",
        "4cdb42070f9180edf9ffbbcddb3fab0b80877fb4"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Wed Aug 20 22:04:27 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 20 22:04:27 2025"
      },
      "message": "Merge \"Add fbounds-safety annotations for `sorted`.\" into main"
    },
    {
      "commit": "17ba97c149d9e4b3cb5348109494b7aba74775d2",
      "tree": "8d40b193a3ab180b6ef6e86ba2c9d7e6661f07ba",
      "parents": [
        "7ee251d3fd2303b64a2034f01c41dc42bcd045cf",
        "baf42a5876394107220050269a9aaa2e0efe3850"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Wed Aug 20 21:07:31 2025"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 20 21:07:31 2025"
      },
      "message": "Merge \"Add fbounds-safety annotations for `data`.\" into main"
    },
    {
      "commit": "4cdb42070f9180edf9ffbbcddb3fab0b80877fb4",
      "tree": "794fbbc0f08b9671303c9f0533db93c45a7fdbb4",
      "parents": [
        "2be405c472508965c1181518f40e8715d5bb2633"
      ],
      "author": {
        "name": "Arman Hasanzadeh",
        "email": "armanihm@google.com",
        "time": "Wed Aug 20 20:11:59 2025"
      },
      "committer": {
        "name": "Arman Hasanzadeh",
        "email": "armanihm@google.com",
        "time": "Wed Aug 20 20:22:41 2025"
      },
      "message": "Add fbounds-safety annotations for `sorted`.\n\nReasoning:\n\nThe `sorted` parameter in `BuildHuffmanTable`\n(`src/utils/huffman_utils.c:87`) is annotated with\n`WEBP_COUNTED_BY_OR_NULL(code_lengths_size)`. Analysis of the\naccess patterns (lines 137, 177, 207) shows that the indices used\nare bounded by `code_lengths_size`. Since `sorted` can be NULL,\n`_OR_NULL` is used. When compiling, calls\nto `BuildHuffmanTable` in `VP8LBuildHuffmanTable` (line 272) required forging bounds because the `sorted` buffer, allocated\nvia `WebPSafeMalloc` or on the stack, was treated as unsafe.\n`WEBP_UNSAFE_FORGE_BIDI_INDEXABLE` is used at the call sites to\nprovide the necessary bounds information.\n\nBug: 432511821\nChange-Id: I6fea3ac5d77cb56139f9748ba0277a4f0ad21737\n"
    }
  ],
  "next": "baf42a5876394107220050269a9aaa2e0efe3850"
}
