)]}'
{
  "log": [
    {
      "commit": "ac0c3532476fa4876a83a279127840741cf216f2",
      "tree": "63c354b6ab6bfa0818349e32fbf9ab607c5690cc",
      "parents": [
        "7c0cc40af3a388388faf48a0c3d764bc16436954"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Oct 26 16:56:03 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Oct 26 16:56:03 2026 +0200"
      },
      "message": "doc: Explain why the progressive reader keeps the zstream across chunks\n\nThis is a follow-up to commit 6c7783b151377f591c83955e23da50991ad1a600.\n\nThis is a cherry-pick of commit 890812a28da480f84f3b0198d31ac611c864ed98\nfrom branch \u0027libpng18\u0027.\n"
    },
    {
      "commit": "7c0cc40af3a388388faf48a0c3d764bc16436954",
      "tree": "d9c2e840f6d64df65eb6d6bdd95dc6597b3b0824",
      "parents": [
        "8c2a5fba4f81f027d4cab0256756c8db7ff75be5"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Oct 23 15:27:26 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Oct 23 15:27:26 2026 +0300"
      },
      "message": "fix: Limit the buffer size of the simplified write API to 32 bits\n\nIn the simplified API, it is promised that libpng refuses an image\nwhose buffer size (as computed by `PNG_IMAGE_BUFFER_SIZE`) overflows\n32 bits. Although this promise is kept in `png_image_finish_read`,\n`png_image_write_main` computed the size from the minimum row stride\ninstead of the actual one, and without the size of a 16-bit component.\nAn image accepted by that check could make the writer read past the\nend of its buffer.\n\nThis is a cherry-pick of commit 0b0876829d77db0827a8cc2c4326f63be22b2aa1\nfrom branch \u0027libpng18\u0027.\n\nReported-by: Madan301 \u003cMadan301@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "8c2a5fba4f81f027d4cab0256756c8db7ff75be5",
      "tree": "e786b2ffc9e5eed5d44c3dc55143df5f410651e9",
      "parents": [
        "231c304157eed203d03d9e960ca0217bd419035e"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Oct 21 20:54:30 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Oct 21 20:54:30 2026 +0300"
      },
      "message": "maint: Rerun `./autogen.sh --maintainer`\n"
    },
    {
      "commit": "231c304157eed203d03d9e960ca0217bd419035e",
      "tree": "1792e1696789afd18d915eaef7a3e2c4fef925c1",
      "parents": [
        "33d015040f5dbc3d678413360ff9df35d152eefc"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Oct 21 20:54:30 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Oct 21 20:54:30 2026 +0300"
      },
      "message": "test: Add regression tests for CVE-2026-46675\n\nThis tests commit 6c7783b151377f591c83955e23da50991ad1a600.\n\nThis is a cherry-pick of commit 682e5fe8003ad8d5fa398b00a8a6ca3cdf03f6b6\nfrom branch \u0027libpng18\u0027.\n"
    },
    {
      "commit": "33d015040f5dbc3d678413360ff9df35d152eefc",
      "tree": "b0319f097cac0829983f764cd347bec33414b724",
      "parents": [
        "5454ffa473fcaab02e4c44bac25be2d45778cf48"
      ],
      "author": {
        "name": "John Bowler",
        "email": "jbowler@acm.org",
        "time": "Sun Oct 11 17:12:48 2026 -0700"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Oct 12 16:59:12 2026 +0300"
      },
      "message": "fix(test): Avoid an over-read in the low-bit-depth sBIT check\n\nFor images with sBIT chunks the test program contrib/libtests/pngimage\nruns two nested for loops, one over the pixels another over the bytes in\na pixel.\n\nWith low bit depth grayscale images the per-pixel loop needs to advance\nby more than one for each iteration because the sub-loop checks a whole\nbyte therefore checks multiple pixels.\n\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: John Bowler \u003cjbowler@acm.org\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "5454ffa473fcaab02e4c44bac25be2d45778cf48",
      "tree": "762c5c436a01d0659587380459ee6c94b0c001ff",
      "parents": [
        "cf924707383f619ef3c85a8f95e512bd4d7346a4"
      ],
      "author": {
        "name": "bibi samina",
        "email": "sam@bugqore.com",
        "time": "Thu Aug 27 16:14:32 2026 +0530"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Oct 12 16:44:14 2026 +0300"
      },
      "message": "fix(test): Correct the sBIT handling in `compare_read`\n\nThe non-palette sBIT path in `compare_read` conflated colour components\nwith the bytes of a pixel. `sig_bits` only ever holds one sBIT value per\ncomponent, but it was declared with eight entries because it was then\nreused to hold the per-byte mask. As a result the loop that range checks\nthe sBIT values ran once per byte and tested entries that were never\nset, and the 16-bit expansion indexed `sig_bits` as if `b` were zero\nbased: for RGBA it wrote `sig_bits[8]` and `sig_bits[9]`, two bytes past\nthe array.\n\nRecord the component count in `components` rather than deriving a pixel\ndepth in the colour type switch, range check one entry per component,\nand build the mask in a separate `sig_mask[8]`. `bpp` is now in bytes\nthroughout, which makes the `bpp` sanity check redundant.\n\nReviewed-by: John Bowler \u003cjbowler@acm.org\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "cf924707383f619ef3c85a8f95e512bd4d7346a4",
      "tree": "7cbfdaa1aab5fcdd262492412b27065182cdb026",
      "parents": [
        "d76d5106f041b97b3462d15bce738f2a4412de47"
      ],
      "author": {
        "name": "Mike Williams",
        "email": "mrmrdubya@gmail.com",
        "time": "Thu Jun 04 14:19:20 2026 +0100"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Oct 09 21:52:20 2026 +0300"
      },
      "message": "fix(build): Resolve MSVC warning for unary minus on unsigned type\n\nRedo the refactor from commit 9929ba276ea3f7b4f03fdc0c693997ece3609c5b\n(version 1.6.56) in a manner that placates MSVC warning C4146.\n\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "d76d5106f041b97b3462d15bce738f2a4412de47",
      "tree": "0a57a7aeb2e563633ddae1965e313a41ab0ed708",
      "parents": [
        "1f1a501346800e9660d3039a6efbf90b685b5d97"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Oct 02 19:20:05 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Oct 02 19:20:05 2026 +0300"
      },
      "message": "ci: Enumerate all maintained branches in the GitHub Actions triggers\n\nThis is a cherry-pick of commit ed739a508e83f5bd97310192734293ce36e8a484\nfrom branch \u0027develop\u0027.\n"
    },
    {
      "commit": "1f1a501346800e9660d3039a6efbf90b685b5d97",
      "tree": "194db381877c1e1793d2fc170bfda66782e5f345",
      "parents": [
        "cd952f49f95bb27154ae77dbb103032d95f6e580"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Sep 30 11:59:55 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Sep 30 11:59:55 2026 +0300"
      },
      "message": "maint: Bump version to 1.6.60.git\n"
    },
    {
      "commit": "cd952f49f95bb27154ae77dbb103032d95f6e580",
      "tree": "dda3fd3731452de2b2f8f69a03c985118d45f112",
      "parents": [
        "65152c06572b5abdb3fd2e4a58337c630332ad24"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 28 23:58:10 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 28 23:58:10 2026 +0300"
      },
      "message": "Release libpng version 1.6.59\n"
    },
    {
      "commit": "65152c06572b5abdb3fd2e4a58337c630332ad24",
      "tree": "438b10b8988817d07c6db33b5a86223915179023",
      "parents": [
        "d9bdad6975bd59895e09ef24e9ae19d28764ff17"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 28 23:39:32 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 28 23:39:32 2026 +0300"
      },
      "message": "maint: Rerun `./autogen.sh --maintainer`\n"
    },
    {
      "commit": "d9bdad6975bd59895e09ef24e9ae19d28764ff17",
      "tree": "9c071c7cd3667b490d84ef0eba2d9be18030cbc9",
      "parents": [
        "83f925f34e1c38ed9abe3966df2e1f5b049fa945"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 28 22:46:35 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 28 22:46:35 2026 +0300"
      },
      "message": "maint: Apply the MIT-0 license to .appveyor.yml\n\nThis is a cherry-pick of commit f5c2d04744b04c0ab8909cbd562000de263cfb74\nfrom branch \u0027libpng18\u0027.\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "83f925f34e1c38ed9abe3966df2e1f5b049fa945",
      "tree": "1137646a8a990ce0c656cd117059200c3ee3a6f0",
      "parents": [
        "a6a75395bee4d2b0006114b91b2b8a90fe95735d"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 28 22:34:48 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 28 22:34:48 2026 +0300"
      },
      "message": "ci: Migrate the GitHub Actions Windows ARM64 job to Visual Studio 2026\n\nUse the \"Visual Studio 18 2026\" CMake generator in all Windows jobs\nof the GitHub Actions workflow. After the \"windows-11-arm\" label was\nrepointed to a new image that contains Visual Studio 2026 only, the\nprevious version-exact generator on Windows ARM64 no longer matched\nany installed instance.\n\nThis is a cherry-pick of commit 5e9b33f63164c63c6e434348c6af2c0b7a660935\nfrom branch \u0027libpng18\u0027.\n"
    },
    {
      "commit": "a6a75395bee4d2b0006114b91b2b8a90fe95735d",
      "tree": "aef5efc066267033fd09e009fbc7dfba75908680",
      "parents": [
        "aa77ef38c17ab2fc1b41bec09fb973c6a386641d"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Sep 23 21:46:57 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Sep 23 21:46:57 2026 +0300"
      },
      "message": "doc: Describe the zstream states that `png_read_end` must handle\n\nThis is a cherry-pick of commit ba947ba18ec8f90bcab3f4393f0ca07bf9ba1a14\nfrom branch \u0027libpng18\u0027.\n"
    },
    {
      "commit": "aa77ef38c17ab2fc1b41bec09fb973c6a386641d",
      "tree": "4c64b5f18cef7d129adee3b403fc4be93f82e30d",
      "parents": [
        "4eeb825ab26605ed34cd74495d4cce920939fe9f"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Sep 23 18:30:11 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Sep 23 18:30:11 2026 +0300"
      },
      "message": "fix: Clear stale zstream pointers when releasing the inflate stream\n\nThe zstream buffer pointers and counters are all cleared on acquisition\nin `png_inflate_claim`, but only `next_in` and `avail_in` were cleared\non release in `png_read_finish_IDAT`, and none were cleared on release\nin the chunk decompression paths.\n\nIf `png_read_end` is called before row reading starts, the IDAT stream\nis never claimed. Previously, a leftover non-zero `avail_in` caused the\nrefill in `png_read_IDAT_data` to be skipped, and inflation continued\nthrough a stale `next_in` into an input buffer that may since have been\ndeallocated.\n\nIntroduce the function `png_inflate_detach_buffers` to clear the\npointers and the counters of zstream input and output buffers on both\nacquisition and release. Although clearing `next_out` and `avail_out`\nis not currently necessary at any call site, it makes release mirror\nacquisition at a negligible cost paid once for each zlib stream.\n\nThis is a cherry-pick of commit 6c7783b151377f591c83955e23da50991ad1a600\nfrom branch \u0027libpng18\u0027.\n\nReported-by: Ze Sheng \u003cOwenSanzas@users.noreply.github.com\u003e\nReported-by: JasonHonKL \u003cJasonHonKL@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "4eeb825ab26605ed34cd74495d4cce920939fe9f",
      "tree": "8c79809eaf8779941868dd8e663207d78f10b0e3",
      "parents": [
        "66cb28a0cd4791c401fe63d7875739d6a9e69a39"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Sep 11 22:47:43 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Sep 11 22:47:43 2026 +0300"
      },
      "message": "ci: Remove the autotools install from the Linux verification job\n\nAll necessary autotools packages are now preinstalled in the GitHub\nActions Ubuntu runner images.\n\nThis is a cherry-pick of commit 964b4135949703b705fc760fc3fb546b86e5ab47\nfrom branch \u0027libpng18\u0027.\n"
    },
    {
      "commit": "66cb28a0cd4791c401fe63d7875739d6a9e69a39",
      "tree": "541f8ab11eb4bb1c28804c45eb3a7d5baaeea4a4",
      "parents": [
        "d636385b22e9005b0fd2ae10180f7b1dcf5b6142"
      ],
      "author": {
        "name": "Alb3e3",
        "email": "74142887+Alb3e3@users.noreply.github.com",
        "time": "Thu Jun 11 11:58:48 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Sep 11 21:53:07 2026 +0300"
      },
      "message": "ci: Harden GitHub Actions workflow permissions\n\nWithout an explicit declaration, the workflow token carries write\naccess to the repository on push events, although our project only\nneeds read access. Restrict the grant to limit what a compromised\naction can reach.\n\nAlso harden the dependency step: replace context expressions such as\n`${{ github.ref }}` with environment variables to prevent expansion\nas shell code.\n\nThis is a cherry-pick of commit ef395b942d79b46bde4cfc33d30a9bddc0a282a8\nfrom branch \u0027libpng18\u0027.\n\nResolves: https://github.com/pnggroup/libpng/pull/879\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "d636385b22e9005b0fd2ae10180f7b1dcf5b6142",
      "tree": "ecd1fecdac5bcdcaae5ea67ae27c9042cd933f58",
      "parents": [
        "813a4963b19d9809b963af216aeb01fb28eba5a5"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 07 11:56:26 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 07 11:56:26 2026 +0300"
      },
      "message": "doc: Update AUTHORS.md\n\nThis is a cherry-pick of commit dda1ea691430dd0ca8b8e5a90c7e8a0d3bf84f6b\nfrom branch \u0027libpng18\u0027.\n"
    },
    {
      "commit": "813a4963b19d9809b963af216aeb01fb28eba5a5",
      "tree": "010f9fe1a72e894a0b865f30626222cbbc319779",
      "parents": [
        "45126c6e676b57f242b36acfceef147e97418295"
      ],
      "author": {
        "name": "Yuki Sekiguchi",
        "email": "yuki.sekiguchi@access-company.com",
        "time": "Thu Nov 20 17:01:34 2025 +0900"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 07 11:56:26 2026 +0300"
      },
      "message": "Fix hIST chunk position to match W3C specification\n\nThe hIST chunk was incorrectly positioned in the code. According to the\nW3C specification, the hIST chunk must appear before the first IDAT\nchunk and after PLTE (if present). This commit corrects the chunk\npositioning to comply with the specification.\n\nThis is a cherry-pick of commit 9ecda6eaf5726e0248cf60ab8926423c476a66c0\nfrom branch \u0027libpng18\u0027.\n\nSigned-off-by: Chris Lilley \u003cchris@w3.org\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "45126c6e676b57f242b36acfceef147e97418295",
      "tree": "02c793b97b61d9c91499144171ce0a2a4b59258f",
      "parents": [
        "cae474558968f015124d7369556a4b1016276e3a"
      ],
      "author": {
        "name": "Yuki Sekiguchi",
        "email": "yuki.sekiguchi@access-company.com",
        "time": "Thu Nov 20 17:06:07 2025 +0900"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 07 11:56:26 2026 +0300"
      },
      "message": "Add test cases for hIST chunk\n\nThis is a cherry-pick of commit c2831cb0e6b2f2bb34ae1f2ccb86bd65e19a1c80\nfrom branch \u0027libpng18\u0027.\n\nSigned-off-by: Chris Lilley \u003cchris@w3.org\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "cae474558968f015124d7369556a4b1016276e3a",
      "tree": "5dfeede7e6eda343ee328b6921b6e9e196b7a379",
      "parents": [
        "7ed557b4a0c347ec697ea40d2a079474a740d1a9"
      ],
      "author": {
        "name": "Anthony Hurtado",
        "email": "amhurtado@protonmail.com",
        "time": "Thu May 28 23:32:02 2026 -0500"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Jun 22 19:38:52 2026 +0300"
      },
      "message": "fix: Prevent double-freeing `png_struct` members on allocation failure\n\nClear the pointers inside `png_struct` after `png_free`, following the\nexisting idiom in `png_read_buffer`, to ensure that a subsequent free\nwill be a no-op.\n\nSeveral read-side functions free a `png_struct` member and allocate\na replacement without clearing the pointer in between. When that\nallocation fails, `png_malloc` calls `png_error`, which longjmps out\nbefore the assignment, leaving the member pointing at freed memory.\nThe application\u0027s cleanup path (`png_destroy_read_struct`, then\n`png_read_destroy`) then frees it a second time.\n\nThe same defect occurs at five members across four functions:\n - `big_row_buf` and `big_prev_row` in `png_read_start_row`;\n - `palette` in `png_set_PLTE`;\n - `trans_alpha` in `png_set_tRNS`;\n - `quantize_index` in `png_set_quantize`.\n\nThis is robustness hardening, not a fix for untrusted input. Arming\nthe double-free needs a prior successful pass through the same site,\nand PNG content alone cannot deliver one: duplicate PLTE and tRNS\nchunks are rejected before their setters run, and within a single\ndecode the row dimensions never grow, so the row-buffer reallocation\nguard cannot re-fire.\n\nThe trigger is an application that causes a setter to run twice on one\n`png_struct` or reuses the struct across decodes, and then meets an\nallocation failure.\n\nThis is a cherry-pick of commit a22696be0aadb185de33c152cc81df899eeefe6a\nfrom branch \u0027libpng18\u0027.\n\nCo-authored-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Anthony Hurtado \u003camhurtado@pm.me\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "7ed557b4a0c347ec697ea40d2a079474a740d1a9",
      "tree": "7ddd56604376d56e06ac15ed239dbd01dc8a64fd",
      "parents": [
        "fad0b254331f72a0805e5d10df46970cf8e9c5e0"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Jun 19 23:57:54 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Jun 19 23:57:54 2026 +0300"
      },
      "message": "build: Raise the CMake policy maximum version to 4.4\n\nThis is a cherry-pick of commit 6d2054b29e0e07f0def670e2f2683cc9691cbf67\nfrom branch \u0027libpng18\u0027.\n"
    },
    {
      "commit": "fad0b254331f72a0805e5d10df46970cf8e9c5e0",
      "tree": "70edea1a2cf3d49617827a317e8f047afb5b0ca3",
      "parents": [
        "78ae423bf09b1577c235cd8fd151a2b84e59e30c"
      ],
      "author": {
        "name": "yaito3014",
        "email": "ykakeyama3014@gmail.com",
        "time": "Fri Jun 12 18:45:03 2026 +0900"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Jun 19 23:54:59 2026 +0300"
      },
      "message": "fix(build): Use space-separated string for CMAKE_REQUIRED_FLAGS\n\nThis is a cherry-pick of commit d733c11206a350f2af3cd13c6d5929e9fb6b27a1\nfrom branch \u0027libpng18\u0027.\n\nCo-authored-by: Brad King \u003cbrad.king@kitware.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "78ae423bf09b1577c235cd8fd151a2b84e59e30c",
      "tree": "4b0dbce79ccfcbf3028cf3b3c60e38555b3a6b97",
      "parents": [
        "145eced09d78a6936c600799f531d90f100e0b39"
      ],
      "author": {
        "name": "Carlo Bramini",
        "email": "carlo_bramini@users.sourceforge.net",
        "time": "Sun May 10 23:25:43 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Jun 19 11:54:25 2026 +0300"
      },
      "message": "build: Fix wrong symlink created for import library on MinGW and Cygwin\n\nThis is a cherry-pick of commit 0bb2bb50e36b8f8058c27446e934d9f425b8ffe4\nfrom branch \u0027libpng18\u0027\n\nResolves: https://github.com/pnggroup/libpng/issues/783\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "145eced09d78a6936c600799f531d90f100e0b39",
      "tree": "2a9a3f6c34aec49a61fec54c9927adec416cecd0",
      "parents": [
        "99652c99876997c701b9113ce509e2eb7707b9d2"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Jun 15 22:54:19 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Jun 15 22:54:19 2026 +0300"
      },
      "message": "ci: Migrate the Windows x64 job to Visual Studio 2026 on \"windows-2025\"\n\nThe \"windows-latest\" alias was repointed to a Windows Server 2025 image\nthat ships Visual Studio 2026 only, which prevented the version-exact\ngenerator \"Visual Studio 17 2022\" from matching any installed instance.\n\nThis is a cherry-pick of commit dd5d363ae1fc7778f2734bf51b10d3fe65028671\nfrom branch \u0027libpng18\u0027.\n"
    },
    {
      "commit": "99652c99876997c701b9113ce509e2eb7707b9d2",
      "tree": "e7594ff1bb4ed19b85943cc6bbedce18cdd214f0",
      "parents": [
        "7b85a6f56684c6d39040743ad5cedf95aedc459a"
      ],
      "author": {
        "name": "MUGUNDAN",
        "email": "mugunthan.selvanayagam@multicorewareinc.com",
        "time": "Sun Apr 19 17:39:25 2026 +0530"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon May 11 20:31:55 2026 +0300"
      },
      "message": "ci: Add support for testing libpng on Windows ARM64\n\nThis is a cherry-pick of commit 92c853c34e41570504baa48b8a8169e53b188324\nfrom branch \u0027libpng18\u0027.\n\nCo-authored-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "7b85a6f56684c6d39040743ad5cedf95aedc459a",
      "tree": "1e065e6e89d9d56350e531c30f74b2613438bcd0",
      "parents": [
        "d3f14cdc8c03e04c48fe800ba3840126aa29bb8e"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon May 11 11:09:22 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon May 11 11:09:22 2026 +0300"
      },
      "message": "maint: Apply the MIT-0 license to .github/workflows/\n\nThis is a cherry-pick of commit 76745cede9f5a920c1eaddfa8537fc0c5f4a0cdb\nfrom branch \u0027libpng18\u0027.\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "d3f14cdc8c03e04c48fe800ba3840126aa29bb8e",
      "tree": "0519bccbcc67b2cefe3cde8da96cfdc25ef49227",
      "parents": [
        "8c62c3b86a8832d47d6089ee4e5caf64177473c3"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon May 11 10:47:08 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon May 11 10:47:08 2026 +0300"
      },
      "message": "maint: Migrate the CI software licensing to the REUSE Specification\n\nAlso change the copyright notice format in source files:\n\n - Old format: \"Copyright (c) \u003cAuthor\u003e \u003cYear\u003e-\u003cYear\u003e\"\n - New format: \"Copyright (C) \u003cAuthor\u003e \u003cYear\u003e\"\n\nThe new format is meant to reduce the diff output and to alleviate the\nmaintenance burden; the use of lowercase \"(c)\" vs. uppercase \"(C)\" is\nmeant to distinguish between the old format and the new format.\n\nThis is a cherry-pick of commit 28cb31ffa4f59580e7f28e02f317e1315d12ab1d\nfrom branch \u0027libpng18\u0027.\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "8c62c3b86a8832d47d6089ee4e5caf64177473c3",
      "tree": "4437c4f9ba0f571f83d8bf49cda79a7f1736c846",
      "parents": [
        "3061454d980de7d53608f594194cfac722721d2a"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 22 21:32:07 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 22 21:32:07 2026 +0300"
      },
      "message": "Bump version to 1.6.59.git\n"
    },
    {
      "commit": "3061454d980de7d53608f594194cfac722721d2a",
      "tree": "6937cb18b7d1402af72e93af2ef8e9772bb1d2da",
      "parents": [
        "6eb1ad8a2a04a78f4fe711713a903acbbef1f6c6"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 15 20:23:26 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 15 20:23:26 2026 +0300"
      },
      "message": "Release libpng version 1.6.58\n"
    },
    {
      "commit": "6eb1ad8a2a04a78f4fe711713a903acbbef1f6c6",
      "tree": "6e0e184783c5260044006872de320009150ba0ab",
      "parents": [
        "571a89514399597a5f69740b5c3a719353a256fc"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 15 19:56:39 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 15 19:56:39 2026 +0300"
      },
      "message": "chore: Update .gitignore to exclude the recently-added test program\n"
    },
    {
      "commit": "571a89514399597a5f69740b5c3a719353a256fc",
      "tree": "3bb637a0c4eab7f7f2133376b29b23dfe84328d8",
      "parents": [
        "d4c4e49eb5c8981075ec2cd946428758c0cda6ac"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 15 19:43:01 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 15 19:43:01 2026 +0300"
      },
      "message": "test: Ensure the palette sync follows the gamma correction\n\nThis tests commit d4c4e49eb5c8981075ec2cd946428758c0cda6ac.\n"
    },
    {
      "commit": "d4c4e49eb5c8981075ec2cd946428758c0cda6ac",
      "tree": "49ab43d9eaa5b23bf484bf362ff25808a5f8e850",
      "parents": [
        "ac07fb081994484436904527b0cd5c1b0450903f"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 15 14:58:35 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 15 14:58:35 2026 +0300"
      },
      "message": "fix: Sync `info_ptr-\u003epalette` unconditionally after in-place transforms\n\nThe palette sync in `png_read_transform_info` was guarded by\n`if (transformations !\u003d 0)`, but the palette-modifying transforms clear\ntheir own bits before this function gets to run. When one of these was\nthe sole transform, the guard was false and the sync was skipped, which\ncaused `png_get_PLTE` to return stale palette data.\n\nDrop this guard.\n\nThis was a regression from commit c1b0318b39 (version 1.6.56).\n\nReported-by: ralfjunker \u003cralfjunker@users.noreply.github.com\u003e\nResolves: https://github.com/pnggroup/libpng/issues/848\n"
    },
    {
      "commit": "ac07fb081994484436904527b0cd5c1b0450903f",
      "tree": "5ca9be89fbfea97a8ee9f6ff8f79704d56e9d514",
      "parents": [
        "95ab3fdca83ea294efd3b092e9a53c5a39886444"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 15 11:46:46 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 15 11:46:46 2026 +0300"
      },
      "message": "Bump version to 1.6.58.git\n"
    },
    {
      "commit": "95ab3fdca83ea294efd3b092e9a53c5a39886444",
      "tree": "dd428d147839dadf52ace6abad351210cf9e2833",
      "parents": [
        "2c974860c73d6d85857d434500d05a9dcf08c13b"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 08 23:49:24 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 08 23:49:24 2026 +0300"
      },
      "message": "Release libpng version 1.6.57\n"
    },
    {
      "commit": "2c974860c73d6d85857d434500d05a9dcf08c13b",
      "tree": "00a9aed5e05c0a63bbdc7b1fd0ab76ff57b785d4",
      "parents": [
        "55d20aaa322c9274491cda82c5cd4f99b48c6bcc"
      ],
      "author": {
        "name": "mohammadmseet-hue",
        "email": "mohammadmseet@gmail.com",
        "time": "Mon Apr 06 17:25:47 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Apr 06 19:02:41 2026 +0300"
      },
      "message": "fix: Prevent integer overflow in rowbytes computation\n\nCast `row_width` to `size_t` before multiplication when computing\n`row_info-\u003erowbytes`, to avoid 32-bit truncation on LP64 systems.\n\nFix the cast order in `png_do_expand_palette` where the widening\ncast was applied after the multiply rather than before it.\n\nThis is a cherry-pick of commit c0ba09ecb44f0962b6532747b09e2f8160e29baf\nfrom branch \u0027libpng18\u0027.\n\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "55d20aaa322c9274491cda82c5cd4f99b48c6bcc",
      "tree": "593e234ea50f60701bd069bf4a687cc1fc3087e2",
      "parents": [
        "930dfe0483fb105e8221869e886bc5b10bc26cd3"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 30 17:43:05 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 30 17:43:05 2026 +0300"
      },
      "message": "fix: Handle getter-to-setter aliasing in append-style chunk setters\n\nApply the same class of robustness fix from the previous commit to\n`png_set_text`, `png_set_sPLT` and `png_set_unknown_chunks`. These\nappend-style setters used `png_realloc_array` to grow the internal\narray, then freed the old array before copying from the caller\u0027s\ninput. If the caller\u0027s pointer was obtained from the corresponding\ngetter, it aliased the freed array.\n\nThe fix defers the freeing of the old array until after the copy loop.\n\nAlso extend the pnggetset regression test to cover all three setters.\n"
    },
    {
      "commit": "930dfe0483fb105e8221869e886bc5b10bc26cd3",
      "tree": "3d36cb29410da67e456b64996c35ff98437e6b4f",
      "parents": [
        "398cbe3df03f4e11bb031e07f416dfdde3684e8a"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 30 17:35:30 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 30 17:35:30 2026 +0300"
      },
      "message": "chore: Rerun `./autogen.sh --maintainer`\n"
    },
    {
      "commit": "398cbe3df03f4e11bb031e07f416dfdde3684e8a",
      "tree": "1f921c8bc64cd6306dc1a0349310fda985002882",
      "parents": [
        "2182a677dd02ceb488596261c7c2a515ac1d8f21"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 30 17:35:30 2026 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 30 17:35:30 2026 +0300"
      },
      "message": "fix: Handle self-referencing pointers in getter-to-setter aliasing\n\nApply a robustness fix for a caller-side API usage pattern involving\nthe getters and the setters for PLTE, tRNS, and hIST.\n\nPassing a pointer returned by the PLTE, tRNS, or hIST getters back\ninto the corresponding setters used to cause the setters to read from\na stale pointer. The fix consists in snapshotting the caller\u0027s data\ninto a stack-local buffer before freeing the old internal storage.\n\nFixes pnggroup/libpng#836\n\nReported-by: Iv4n \u003cIv4n550@noreply.github.com\u003e\n"
    },
    {
      "commit": "2182a677dd02ceb488596261c7c2a515ac1d8f21",
      "tree": "3e04c35739ed8e12374d24b7e223cc2852b2d68f",
      "parents": [
        "d5515b5b8be3901aac04e5bd8bd5c89f287bcd33"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Mar 27 20:25:50 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Mar 27 20:25:50 2026 +0200"
      },
      "message": "Bump version to 1.6.57.git\n"
    },
    {
      "commit": "d5515b5b8be3901aac04e5bd8bd5c89f287bcd33",
      "tree": "a28bb962645843af84063c77f574f6d88da79f76",
      "parents": [
        "5f9a0b1e5ed1f096107dfd76fd16217f94a29673"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Mar 25 22:47:06 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Mar 25 22:47:06 2026 +0200"
      },
      "message": "Release libpng version 1.6.56\n"
    },
    {
      "commit": "5f9a0b1e5ed1f096107dfd76fd16217f94a29673",
      "tree": "29bb5c611b4fd109b9883f14ab0c45f58043515c",
      "parents": [
        "2f79003f2d89d9285fde0fe380cb8b2d7c382206"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Mar 25 18:51:09 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Mar 25 18:51:09 2026 +0200"
      },
      "message": "Update the main AUTHORS file\n"
    },
    {
      "commit": "2f79003f2d89d9285fde0fe380cb8b2d7c382206",
      "tree": "886ee5a87fcba6a3176b0ea3ccc4760219783689",
      "parents": [
        "dc1732e37afdee070e5660d9641e202c082a6d1c"
      ],
      "author": {
        "name": "Jeffin820",
        "email": "jeffinphilip14@gmail.com",
        "time": "Fri Mar 13 11:10:48 2026 +0530"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Mar 25 18:33:42 2026 +0200"
      },
      "message": "fix: Use the correct parameter name in `png_file_add_chunk`\n\nThe parameter name in `png_file_add_chunk(pnt_ptr, ...)` was a typo,\nwith the macro body referencing `png_ptr` instead. This caused the\nargument to be effectively unused.\n\nFortunately, this typo was a latent bug with no effect. The sole call\nsite was already passing `png_ptr`, so the macro expansion is identical\nbefore and after this fix.\n\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "dc1732e37afdee070e5660d9641e202c082a6d1c",
      "tree": "b00c8ce2543dc1d0ba70beae813f66c389c15810",
      "parents": [
        "80c0485c276edbefe9cf795c686adf92e45936f0"
      ],
      "author": {
        "name": "Philippe Antoine",
        "email": "contact@catenacyber.fr",
        "time": "Mon Mar 09 22:10:50 2026 +0100"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Mar 25 17:22:24 2026 +0200"
      },
      "message": "oss-fuzz: Restrict transformations_fuzzer to transformations\n\nAnd let the other targets focus on the other parts.\n"
    },
    {
      "commit": "80c0485c276edbefe9cf795c686adf92e45936f0",
      "tree": "56934af5178b3c92988d39d72f896623504b2575",
      "parents": [
        "0126d4293e90a4a7bd5e373b8d025d0bc8dbf5dc"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Mar 25 10:42:06 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Mar 25 10:42:06 2026 +0200"
      },
      "message": "chore(test): Add comments and tidy up test definitions\n"
    },
    {
      "commit": "0126d4293e90a4a7bd5e373b8d025d0bc8dbf5dc",
      "tree": "b9dcca0d2e94054a3a789d11a47f79954f52e7bd",
      "parents": [
        "9929ba276ea3f7b4f03fdc0c693997ece3609c5b"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 23 22:45:09 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 23 22:45:09 2026 +0200"
      },
      "message": "refactor(test): Avoid undefined pointer arithmetic in pngstest.c\n\nGuard the pointer advance with `y+1 \u003c height` inside the function\n`compare_two_images` to skip this advance on the last iteration.\n\nWith a negative stride, the unconditional `row +\u003d stride` in the\nfor-statement produced a pointer before the allocated object on\nthe final iteration. Standard C permits one-after-end but not\none-before-beginning; this is undefined behavior regardless of\nwhether the pointer is dereferenced or not.\n"
    },
    {
      "commit": "9929ba276ea3f7b4f03fdc0c693997ece3609c5b",
      "tree": "075ad4a56b2fd8861aa5799c38705989f7221428",
      "parents": [
        "a625147f66ece6bcb4be441e3f1071c04ebae7ae"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 23 21:13:56 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 23 21:13:56 2026 +0200"
      },
      "message": "refactor: Avoid undefined behavior (signed int overflow) in negations\n\nThe computation of `abs(x)` (where the type of `x` is `png_int_32`)\nshould involve a cast to `png_uint_32` before negating `x`, ensuring\nthat the result is well-defined even for `INT32_MIN`.\n\nConsidering that the PNG Specification (and, implicitly, libpng)\nformally prohibits `INT32_MIN` values, this is merely a zero-cost form\nof hardening intended to appease UBSan, and not an actual bug fix.\n"
    },
    {
      "commit": "a625147f66ece6bcb4be441e3f1071c04ebae7ae",
      "tree": "f434c0318790dcd22af6100d2898b2968ba0b8ab",
      "parents": [
        "98019f6e7054bd4edb1159c3d7771d7462fde369"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 23 20:41:40 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 23 20:41:40 2026 +0200"
      },
      "message": "chore: Rerun `./autogen.sh --maintainer`\n"
    },
    {
      "commit": "98019f6e7054bd4edb1159c3d7771d7462fde369",
      "tree": "15d9cc8ae28b4c5aa94473a62b838538974ad81e",
      "parents": [
        "00002286bfdb6731fc2ca4abc76499edb93455eb"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 23 20:41:12 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 23 20:41:12 2026 +0200"
      },
      "message": "test: Add negative-stride test coverage to pngstest\n\nAdd the option --negative-stride to pngstest. When set, the row stride\nis negated after buffer allocation but before calling the library, so\nthat `png_image_finish_read` and `png_image_write_to_file` exercise the\nbottom-up (negative stride) code paths.\n\nAdd CI targets for the CMake build and for the configure build:\n\n - pngstest-negative-stride:\n   Bottom-up layout with images covering colormapped, truecolor, alpha,\n   8-bit, 16-bit, and short-height paths.\n - pngstest-negative-stride-extra:\n   Same with --stride-extra 7 for non-aligned padding with bottom-up\n   layout.\n\nNote: the interlaced pngsuite images (`ibasn*.png`) are incompatible\nwith pngstest\u0027s format conversion comparison framework, so the\n`png_image_read_direct_scaled` path (interlaced 16-to-8 conversion) is\nnot exercised by this test. A dedicated test for that path will require\ninterlaced images generated with the correct gamma properties for\npngstest\u0027s comparison logic, which is TODO.\n"
    },
    {
      "commit": "00002286bfdb6731fc2ca4abc76499edb93455eb",
      "tree": "abaec1740049dfb110444f1df65f819a5a8edcde",
      "parents": [
        "1632f041e47c8c1bfc90b37b8f21a62ec7c2ddc0"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 23 20:06:56 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 23 20:06:56 2026 +0200"
      },
      "message": "fix(test): Add missing test and tidy up the test list in Makefile.am\n\nAdd `pngstest-large-stride` to the test list in Makefile.am.\n\nThe test `pngstest-large-stride` has a shell script driver in the test\nscript directory, as well as a target in the CMake file, but it hasn\u0027t\nbeen added to the test list in Makefile.am. For this reason, this test\nhasn\u0027t been run by the configure build.\n\nAlso reformat the test list to one entry per line.\n"
    },
    {
      "commit": "1632f041e47c8c1bfc90b37b8f21a62ec7c2ddc0",
      "tree": "b37035bf4e9270639cd223aeaf8d1f529379ed0d",
      "parents": [
        "aba9f18eba870d14fb52c5ba5d73451349e339c3"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 23 17:04:38 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 23 17:04:38 2026 +0200"
      },
      "message": "refactor(arm): Replace bit shifts and sizeof with plain expressions\n\nReplace hand-strength-reduced idioms to make the source code easier to\nread and to audit:\n\n- Replace `i \u003c\u003c 2` with `i * 4`;\n- Replace `(i \u003c\u003c 1) + i` with `i * 3`;\n- Replace `sizeof(png_color)` with 3;\n- Replace `sizeof(png_uint_32)` with 4;\n- Use `index * CONSTANT` consistently in all stride expressions.\n\nThe optimizing compiler will emit identical machine code.\n\nIn particular, the expression `sizeof(png_uint_32)` used in this context\nwas a semantic misnomer: its value should represent bytes per pixel in\nthe RGBA format, not the size of the underlying integer type.\n"
    },
    {
      "commit": "aba9f18eba870d14fb52c5ba5d73451349e339c3",
      "tree": "b035e057607b2e1e167af5fcd571d847a77e807f",
      "parents": [
        "c1b0318b393c90679e6fa5bc1d329fd5d5012ec1"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Mar 21 23:48:49 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Mar 21 23:48:49 2026 +0200"
      },
      "message": "fix(arm): Resolve out-of-bounds read/write in NEON palette expansion\n\nBoth `png_do_expand_palette_rgba8_neon` and\n`png_do_expand_palette_rgb8_neon` advanced in fixed-size chunks without\nguarding the final iteration, allowing out-of-bounds reads and writes\nwhen the row width is not a multiple of the chunk size.\n\nRestrict the NEON loop to full chunks only, remove the now-unnecessary\npost-loop adjustment, and undo the `*ddp` pre-adjustment before the\npointer handoff to the scalar fallback.\n\nReported-by: Amemoyoi \u003cAmemoyoi@users.noreply.github.com\u003e\nCo-authored-by: Amemoyoi \u003cAmemoyoi@users.noreply.github.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "c1b0318b393c90679e6fa5bc1d329fd5d5012ec1",
      "tree": "59d6145cf44abae84214ccbe435a24882449e0d5",
      "parents": [
        "7ea9eea884a2328cc7fdcb3c0c00246a50d90667"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Mar 20 21:25:12 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Mar 20 21:25:12 2026 +0200"
      },
      "message": "fix: Sync `info_ptr-\u003epalette` after in-place transforms\n\nCopy `png_ptr-\u003epalette` into `info_ptr-\u003epalette` upon entering\nthe function that runs immediately after the in-place transforms.\n\nThe palette decoupling in the previous commit gave `png_struct`\nand `png_info` independently-allocated palette buffers, fixing a\nuse-after-free vulnerability. However, `png_init_read_transformations`\nmodifies `png_ptr-\u003epalette` in place (e.g. for gamma correction or\nbackground compositing), and the old aliasing made those modifications\nvisible through `png_get_PLTE`. With independent buffers,\n`info_ptr-\u003epalette` retained the original values, causing our tests to\nfail on indexed-colour background compositing.\n"
    },
    {
      "commit": "7ea9eea884a2328cc7fdcb3c0c00246a50d90667",
      "tree": "b36f2fbbb298bdf3968fc00a1e33a6fc767a0b17",
      "parents": [
        "a3a21443ed12bfa1ef46fa0d4fb2b74a0fa34a25"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Mar 20 17:37:22 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Mar 20 17:37:22 2026 +0200"
      },
      "message": "fix: Resolve use-after-free on `png_ptr-\u003epalette`\n\nGive `png_struct` its own independently-allocated copy of the palette\nbuffer, decoupling it from `info_struct`\u0027s palette. Allocate both\ncopies with `png_calloc` to zero-fill, because the ARM NEON palette\nriffle reads all 256 entries unconditionally.\n\nIn function `png_set_PLTE`, `png_ptr-\u003epalette` was aliased directly to\n`info_ptr-\u003epalette`: a single heap buffer shared across two structs\nwith independent lifetimes. If the buffer was freed through `info_ptr`\n(via `png_free_data(PNG_FREE_PLTE)` or a second call to `png_set_PLTE`),\n`png_ptr-\u003epalette` became a dangling pointer. Subsequent row reads,\nperformed in `png_do_expand_palette` and in other transform functions,\ndereferenced (and in the bit-shift path, wrote to) freed memory.\n\nAlso fix `png_set_quantize` to allocate an owned copy of the caller\u0027s\npalette rather than aliasing the user pointer, so that the unconditional\nfree in `png_read_destroy` does not free unmanaged memory.\n"
    },
    {
      "commit": "a3a21443ed12bfa1ef46fa0d4fb2b74a0fa34a25",
      "tree": "7a3019d6e2bf40505c5645a868afa33047e51537",
      "parents": [
        "bf7fefe787af624e01df9517e4576c386853c34b"
      ],
      "author": {
        "name": "Oblivionsage",
        "email": "cookieandcream560@gmail.com",
        "time": "Tue Mar 17 08:55:18 2026 +0100"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Mar 18 22:57:40 2026 +0200"
      },
      "message": "fix: Initialize tail bytes in `trans_alpha` buffers\n\nAlthough the arrays `info_ptr-\u003etrans_alpha` and `png_ptr-\u003etrans_alpha`\nare allocated 256 bytes, only `num_trans` bytes are copied.\nThe remaining entries were left uninitialized. Set them to 0xff (fully\nopaque) before copying, which matches the conventional treatment of\nentries beyond `num_trans`.\n\nThis is a follow-up to the previous use-after-free fix.\n\nReported-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "bf7fefe787af624e01df9517e4576c386853c34b",
      "tree": "b7bd9532e9121b8a62719703bba9eebb96921438",
      "parents": [
        "23019269764e35ed8458e517f1897bd3c54820eb"
      ],
      "author": {
        "name": "Oblivionsage",
        "email": "cookieandcream560@gmail.com",
        "time": "Tue Mar 17 08:52:55 2026 +0100"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Mar 18 22:57:40 2026 +0200"
      },
      "message": "Add Halil Oktay to AUTHORS\n"
    },
    {
      "commit": "23019269764e35ed8458e517f1897bd3c54820eb",
      "tree": "28866b4fb7fd978e76d752e1c86cfab25c96b13a",
      "parents": [
        "0c37b8fbffe779314f3c842e16983ceec5930af1"
      ],
      "author": {
        "name": "Oblivionsage",
        "email": "cookieandcream560@gmail.com",
        "time": "Sun Mar 15 10:35:29 2026 +0100"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Mar 18 22:57:40 2026 +0200"
      },
      "message": "fix: Resolve use-after-free on `png_ptr-\u003etrans_alpha`\n\nThe function `png_set_tRNS` sets `png_ptr-\u003etrans_alpha` to point at\n`info_ptr-\u003etrans_alpha` directly, so both structs share the same heap\nbuffer. If the application calls `png_free_data(PNG_FREE_TRNS)`, or if\n`png_set_tRNS` is called a second time, the buffer is freed through\n`info_ptr` while `png_ptr` still holds a dangling reference. Any\nsubsequent row read that hits the function `png_do_expand_palette` will\ndereference freed memory.\n\nThe fix gives `png_struct` its own allocation instead of aliasing the\n`info_ptr` pointer. This was already flagged with a TODO in\n`png_handle_tRNS` (\"horrible side effect ... Fix this.\") but it was\nnever addressed.\n\nVerified with AddressSanitizer. All 34 existing tests pass without\nregressions.\n\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "0c37b8fbffe779314f3c842e16983ceec5930af1",
      "tree": "c7abd8639950867b82d822def0b2534129f84ca4",
      "parents": [
        "753fc9980a3186906ec363de2ab51d95b9322390"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 09 17:55:16 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 09 17:55:16 2026 +0200"
      },
      "message": "oss-fuzz: Fix indentation and rephrase comments in the build script\n\nCo-authored-by: Bob Friesenhahn \u003cbobjfriesenhahn@gmail.com\u003e\n"
    },
    {
      "commit": "753fc9980a3186906ec363de2ab51d95b9322390",
      "tree": "bedcacbd382ae52e077d97da83808a5eb1519196",
      "parents": [
        "e1fa87e72e39d32518d6a5e1cc343fb81f10db44"
      ],
      "author": {
        "name": "Philippe Antoine",
        "email": "contact@catenacyber.fr",
        "time": "Sun Mar 08 22:33:20 2026 +0100"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 09 17:24:17 2026 +0200"
      },
      "message": "oss-fuzz: Build the nalloc variants only for the fuzzers that use nalloc\n"
    },
    {
      "commit": "e1fa87e72e39d32518d6a5e1cc343fb81f10db44",
      "tree": "cbe0fd8f0a4b974b3f6451cfe682268d4d27c813",
      "parents": [
        "c0822817b84638fa0b47049633ececb8b085ba25"
      ],
      "author": {
        "name": "Philippe Antoine",
        "email": "contact@catenacyber.fr",
        "time": "Sun Mar 08 22:28:25 2026 +0100"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 09 17:24:17 2026 +0200"
      },
      "message": "oss-fuzz: Rename `_nalloc` to `@nalloc` to match the fuzztests naming\n"
    },
    {
      "commit": "c0822817b84638fa0b47049633ececb8b085ba25",
      "tree": "953759589108f12bc1510c0b328c27d46749d450",
      "parents": [
        "905e1f85bacd68cc46c662f0672c561f30d2abbb"
      ],
      "author": {
        "name": "Philippe Antoine",
        "email": "contact@catenacyber.fr",
        "time": "Sun Mar 08 22:10:16 2026 +0100"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 09 17:24:17 2026 +0200"
      },
      "message": "oss-fuzz: Use bash in the nalloc wrapper script\n"
    },
    {
      "commit": "905e1f85bacd68cc46c662f0672c561f30d2abbb",
      "tree": "a06ffb0c4f8159ee860409feb7819f09cd0c29d3",
      "parents": [
        "2d899901da2bcafd088df067c891ffab6f2d0087"
      ],
      "author": {
        "name": "OwenSanzas",
        "email": "zesheng@tamu.edu",
        "time": "Thu Mar 05 07:53:29 2026 +0000"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 09 11:56:10 2026 +0200"
      },
      "message": "oss-fuzz: Fix API misuse in the readapi fuzzer\n\nReplace the calls to `png_set_scale_16`, `png_set_packing` and\n`png_set_expand`, which were incorrectly combined with\n`png_read_png(..., PNG_TRANSFORM_IDENTITY, ...)`, with the equivalent\n`PNG_TRANSFORM_*` flags passed directly to `png_read_png`.\n\nThe libpng manual states that applications must use transforms, and not\ncall any `png_set_*` transform functions when they use `png_read_png`.\n\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "2d899901da2bcafd088df067c891ffab6f2d0087",
      "tree": "598d429e0d9fbcfac1a68438574719e9b5ff3f3e",
      "parents": [
        "838b2e89ad5882597d24ce3c47c8d7461492cc97"
      ],
      "author": {
        "name": "OwenSanzas",
        "email": "zesheng@tamu.edu",
        "time": "Thu Mar 05 07:53:01 2026 +0000"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 09 11:32:06 2026 +0200"
      },
      "message": "oss-fuzz: Fix memory leaks and API misuse in the transformations fuzzer\n\n- Fix row buffer leak: the row buffer, allocated after `setjmp`, was\n  not freed when `png_read_row` triggered `longjmp`. Declare `row` as\n  volatile before `setjmp` and free it in the error handler. This fixes\n  a LeakSanitizer false positive that prevents the fuzzer from starting.\n- Fix palette buffer leak (same pattern as the row buffer leak):\n  declare `palette` as volatile before `setjmp` and free it in the\n  error handler.\n- Fix API misuse: replace `png_set_*` calls before `png_read_png` with\n  `PNG_TRANSFORM_*` flags.\n\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "838b2e89ad5882597d24ce3c47c8d7461492cc97",
      "tree": "5c9d172bbe962105f0ae73cdccaa34d95df71065",
      "parents": [
        "7d52a808795e011a2dd6290c8b4369150f815f3c"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Mar 06 17:58:06 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Mar 06 18:20:52 2026 +0200"
      },
      "message": "build: Deprecate the POINTER_INDEXING config option\n\nPOINTER_INDEXING was a build configuration option that we maintained\nin order to work around a gcc 2.7.2.2 code generation bug (circa 1997).\nThis provided array-indexing fallback loops in `png_write_PLTE` and\n`png_write_sPLT`.\n\nUnfortunately, the fallback paths were effectively untested dead code\nin every default build, and have been a recurring source of latent bugs.\n(See commit 48800443eb in pnggroup/libpng#801 and commit f27592a0cd in\nlibpng 1.5.2rc02).\n\nNo compiler in current use requires this accommodation.\n\nThis is a cherry-pick of commit 28cb99fe65f09e79703ac2c3008649e14c7b0844\nfrom branch \u0027libpng18\u0027.\n"
    },
    {
      "commit": "7d52a808795e011a2dd6290c8b4369150f815f3c",
      "tree": "9d25d6d27548945f0047dfaa66890f1ae812acaf",
      "parents": [
        "b137d2180b1059dd9dbe3e7f14758e7f0e0505e2"
      ],
      "author": {
        "name": "ylwango613",
        "email": "1217816127@qq.com",
        "time": "Sat Feb 28 10:04:57 2026 +0800"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Mar 02 13:24:11 2026 +0200"
      },
      "message": "Validate shift bit depths in `png_set_shift` to prevent infinite loop\n\nThe function `png_set_shift` did not validate the `png_color_8` fields.\nWhen any channel\u0027s bit depth was 0, `png_do_shift` entered an infinite\nloop because the decrement `j -\u003d 0` never changed `j`. Values exceeding\nthe image bit depth also produced incorrect shift arithmetic.\n\nIn contrast, the read-side sBIT chunk parser (i.e., `png_handle_sBIT`\nin pngrutil.c) already rejects out-of-range values.\n\nThis commit adds equivalent per-channel validation on the write side,\nensuring that all relevant fields are in range from 1 to `bit_depth`,\nand reporting invalid values via `png_app_error`.\n\nFixes pnggroup/libpng#804\n\nThis is a cherry-pick of commit 203c843cd732f7062798dfadcaa48dd13d4854af\nfrom branch \u0027libpng18\u0027.\n\nCo-authored-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "b137d2180b1059dd9dbe3e7f14758e7f0e0505e2",
      "tree": "62b41d3ea02da1d55067a98ba74ff72a04e52f90",
      "parents": [
        "0e731d189ae6b2c8d2f74f2ea52c34bafc426c02"
      ],
      "author": {
        "name": "ylwango613",
        "email": "1217816127@qq.com",
        "time": "Thu Feb 26 17:34:27 2026 +0800"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Feb 27 20:27:52 2026 +0200"
      },
      "message": "Add missing NULL pointer checks in four public API functions\n\npng_set_eXIf_1, png_set_hIST, png_set_shift, and png_set_quantize\naccept user-provided pointers but do not validate them for NULL\nbefore dereferencing, unlike peer functions (png_set_iCCP,\npng_set_PLTE, png_set_sBIT, png_set_tRNS) which do check.\n\nPassing NULL causes an immediate SIGSEGV.\n\nFixes pnggroup/libpng#802\n\nThis is a cherry-pick of commit 747dd02240d95dc8da1b9fecf0f58569ebbcf5a7\nfrom branch \u0027libpng18\u0027.\n\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "0e731d189ae6b2c8d2f74f2ea52c34bafc426c02",
      "tree": "dc9712cdc240cce3bf15ee7336f05121d9ab9038",
      "parents": [
        "646d55abaab7129aa223ae4a69485910e4727717"
      ],
      "author": {
        "name": "ylwango613",
        "email": "1217816127@qq.com",
        "time": "Thu Feb 26 15:49:46 2026 +0800"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Feb 27 18:59:20 2026 +0200"
      },
      "message": "Fix two copy-paste typos in colormap read and sPLT write\n\nFix wrong blue channel in `png_image_read_colormap`: `b \u003d back_g`\nshould be `b \u003d back_b` (pngread.c:2686). This caused PNG_RGB_INDEX\nto compute the wrong 6x6x6 cube index when the background has\ngreen !\u003d blue, forcing a lossier compositing path.\n\nFix dead loop in `png_write_sPLT`: `i \u003e spalette-\u003enentries` should\nbe `i \u003c spalette-\u003enentries` (pngwutil.c:1274). The loop body never\nexecuted, producing a malformed sPLT chunk with CRC mismatch. Only\naffects builds without PNG_POINTER_INDEXING_SUPPORTED.\n\nFixes pnggroup/libpng#800.\n\nThis is a cherry-pick of commit 48800443eb1a6cee79f37da45984e52b3085e62b\nfrom branch \u0027libpng18\u0027.\n\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "646d55abaab7129aa223ae4a69485910e4727717",
      "tree": "4ddc639b1fc2a7ec323cc6b85308d6d402c39c2c",
      "parents": [
        "62f9a9069fc64e858fc32a7abcbb666802feabae"
      ],
      "author": {
        "name": "ylwango613",
        "email": "1217816127@qq.com",
        "time": "Tue Feb 24 16:41:26 2026 +0800"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Feb 27 17:09:08 2026 +0200"
      },
      "message": "Fix wrong channel indices in `png_image_read_and_map` RGB_ALPHA path\n\nIn the PNG_CMAP_RGB_ALPHA case for semi-transparent pixels (alpha\n64-195), all six bit checks used `inrow[0]` (red channel). The green\nand blue channels were never read, causing the colormap index to\ndepend solely on the red value. Fix by using `inrow[1]` for green and\n`inrow[2]` for blue, matching the fully-opaque branch at line 3041.\n\nBug introduced in commit 871b1d0 (libpng 1.6.1beta05, 2013-03-02).\nFixes pnggroup/libpng#796.\n\nThis is a cherry-pick of commit 961721b109dbc4e50ce7164e4dcde2bb49f4bb80\nfrom branch \u0027libpng18\u0027.\n\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "62f9a9069fc64e858fc32a7abcbb666802feabae",
      "tree": "303f07d7027aaeb692512b30a31d6e873dec409d",
      "parents": [
        "8d245089d1585b1dfc24779045a6d1a4efca7ad7"
      ],
      "author": {
        "name": "Philippe Antoine",
        "email": "contact@catenacyber.fr",
        "time": "Wed Feb 11 14:51:23 2026 +0100"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Feb 13 20:17:41 2026 +0200"
      },
      "message": "oss-fuzz: Fix build.sh for/if\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "8d245089d1585b1dfc24779045a6d1a4efca7ad7",
      "tree": "bed5701833c5e4850daa5a5350719c524484f800",
      "parents": [
        "d54127e3db049282850e90c590d950f1fdbf62c2"
      ],
      "author": {
        "name": "THE-Spellchecker",
        "email": "The.Spellchecker@outlook.com",
        "time": "Sat Jan 10 20:07:32 2026 -0600"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Feb 13 18:48:22 2026 +0200"
      },
      "message": "Fix typographical errors\n\nThis is a cherry-pick of commit 0094fdbf3743c238effb88aa92cf2a2ea23ade4a\nfrom branch \u0027libpng18\u0027.\n\nCo-authored-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "d54127e3db049282850e90c590d950f1fdbf62c2",
      "tree": "835b8d2615139ff5d379a8e7dfaf9a1476f459ab",
      "parents": [
        "e0dbfd4b563331b5512424d80c909e201ac98115"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 07 11:53:04 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Feb 11 21:17:47 2026 +0200"
      },
      "message": "refactor: Clean up pointer variable declarations\n\nSplit compound declarations of pointer variables for improved clarity.\n\nRename local loop boundary variables, remove their sterile const\nqualifiers, and reorder their declarations to improve local cohesion.\n\nThis is a cherry-pick of commit 1ebf432e85b53bf111a4585b410592727dd40a5a\nfrom branch \u0027libpng18\u0027.\n"
    },
    {
      "commit": "e0dbfd4b563331b5512424d80c909e201ac98115",
      "tree": "2cb4419be5125658c4134c3fe3ced0598748f0ca",
      "parents": [
        "61b3a6fc08d3419c1857aa61bf1c1c57739935de"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Nov 03 17:44:30 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Feb 11 21:08:00 2026 +0200"
      },
      "message": "refactor: Clean up the redundant top-level const qualifiers\n\nRemove the top-level const qualifiers from local variables and from\nfunction parameters passed by value. These qualifiers only constrain\nthe local object within the function body: they neither affect function\nsignatures, nor constrain callers, nor protect any shared state.\n\nThroughout the libpng codebase we apply const only where it\nmeaningfully constrains objects beyond the immediate scope, such as\ntrue constants and pointed-to objects.\n\nThis is a cherry-pick of commit e973362b8bb15ad939b7f0eb264774bfc221d3be\nfrom branch \u0027libpng18\u0027.\n"
    },
    {
      "commit": "61b3a6fc08d3419c1857aa61bf1c1c57739935de",
      "tree": "5725facdf4e9e7d9dbd9104692f91db17e452ed0",
      "parents": [
        "c3e304954a9cfd154bc0dfbfea2b01cd61d6546d"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Feb 11 19:40:22 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Feb 11 19:40:22 2026 +0200"
      },
      "message": "Bump version to 1.6.56.git\n"
    },
    {
      "commit": "c3e304954a9cfd154bc0dfbfea2b01cd61d6546d",
      "tree": "e01f5780f93eaa6d74cca003bb39b427c8f1e910",
      "parents": [
        "b72e38c08b1bcd574c3a4a9190e5525e74604ed1"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Feb 09 22:02:20 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Feb 09 22:02:20 2026 +0200"
      },
      "message": "Release libpng version 1.6.55\n"
    },
    {
      "commit": "b72e38c08b1bcd574c3a4a9190e5525e74604ed1",
      "tree": "ae0205d0f1f54be67272611d8b6dd5e7cf4973e0",
      "parents": [
        "9404d8e35bdc060faa4d8a40792ba7a2527ff531"
      ],
      "author": {
        "name": "Philippe Antoine",
        "email": "contact@catenacyber.fr",
        "time": "Fri Jan 23 16:04:16 2026 +0100"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Feb 09 20:48:12 2026 +0200"
      },
      "message": "oss-fuzz: Restrict the nalloc build to libfuzzer\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "9404d8e35bdc060faa4d8a40792ba7a2527ff531",
      "tree": "8c935995180fe925fd6d5608495e1a817350b43e",
      "parents": [
        "2f7991c31bca4812580d7f9057537b987108c90c"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Feb 09 17:51:02 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Feb 09 17:51:02 2026 +0200"
      },
      "message": "chore: Pacify markdownlint\n"
    },
    {
      "commit": "2f7991c31bca4812580d7f9057537b987108c90c",
      "tree": "2e7288a97da866b51a12a5757608dba3eebf79a6",
      "parents": [
        "01d03b8453eb30ade759cd45c707e5a1c7277d88"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Feb 09 17:43:54 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Feb 09 17:43:54 2026 +0200"
      },
      "message": "Add .markdownlint.yml, a configuration file for markdownlint\n"
    },
    {
      "commit": "01d03b8453eb30ade759cd45c707e5a1c7277d88",
      "tree": "6b0bf5b28c847b9e1838ed0aaa461107424c3cfa",
      "parents": [
        "b884e8c6188ba2002230474451deccf61f09decc"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Feb 06 19:11:54 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Feb 06 19:11:54 2026 +0200"
      },
      "message": "Fix a heap buffer overflow in `png_set_quantize`\n\nThe color distance hash table stored the current palette indices, but\nthe color-pruning loop assumed the original indices. When colors were\neliminated and indices changed, the stored indices became stale. This\ncaused the loop bound `max_d` to grow past the 769-element hash array.\n\nThe fix consists in storing the original indices via `palette_to_index`\nto match the pruning loop\u0027s expectations.\n\nReported-by: Joshua Inscoe \u003cpwnalone@users.noreply.github.com\u003e\nCo-authored-by: Joshua Inscoe \u003cpwnalone@users.noreply.github.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "b884e8c6188ba2002230474451deccf61f09decc",
      "tree": "15b8b4db9428e19ba38ef4b6ae1d7ba5ef151b43",
      "parents": [
        "02f2b4f4699f0ef9111a6534f093b53732df4452"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Feb 06 19:03:06 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Feb 06 19:03:06 2026 +0200"
      },
      "message": "Bump version to 1.6.55.git\n"
    },
    {
      "commit": "02f2b4f4699f0ef9111a6534f093b53732df4452",
      "tree": "0ca45041086a3533b8d533355de5687af12ffaf0",
      "parents": [
        "f88784b357e7f54c0b8df398e2137cbd1c7909ce"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Jan 12 23:57:52 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Jan 12 23:57:52 2026 +0200"
      },
      "message": "Release libpng 1.6.54\n"
    },
    {
      "commit": "f88784b357e7f54c0b8df398e2137cbd1c7909ce",
      "tree": "c9a1edab618168218053e5316af0ad092bd32c99",
      "parents": [
        "25ec74f9282e0a5974036aa5b037358fedbd2590"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Jan 12 22:18:46 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Jan 12 22:18:46 2026 +0200"
      },
      "message": "chore(oss-fuzz): Fix the lint errors\n"
    },
    {
      "commit": "25ec74f9282e0a5974036aa5b037358fedbd2590",
      "tree": "352d27a4ac17f8972f12763e3758ff3fdf97b9a6",
      "parents": [
        "7a77762e6d952a90651cd404eb78ed65e7875746"
      ],
      "author": {
        "name": "Philippe Antoine",
        "email": "contact@catenacyber.fr",
        "time": "Sun Dec 07 22:31:47 2025 +0100"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Jan 12 11:41:09 2026 +0200"
      },
      "message": "oss-fuzz: Add three targets\n\nFrom https://github.com/pnggroup/libpng/issues/764\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "7a77762e6d952a90651cd404eb78ed65e7875746",
      "tree": "145e4e60d67a30a5c9268395d66eb49d195694be",
      "parents": [
        "296965f0e0b8ebd81da37e77f055b0f342393efd"
      ],
      "author": {
        "name": "Philippe Antoine",
        "email": "contact@catenacyber.fr",
        "time": "Sun Dec 07 22:22:30 2025 +0100"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Jan 12 11:41:09 2026 +0200"
      },
      "message": "oss-fuzz: Replace unicode space with ascii space\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "296965f0e0b8ebd81da37e77f055b0f342393efd",
      "tree": "e373936a366a7ae445f05f25ae33c99ee011f0a7",
      "parents": [
        "e086e68fa33e8fe9c4917a0c1fa7e990f084efd8"
      ],
      "author": {
        "name": "Philippe Antoine",
        "email": "contact@catenacyber.fr",
        "time": "Sun Dec 07 21:58:31 2025 +0100"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Jan 12 11:41:09 2026 +0200"
      },
      "message": "oss-fuzz: Disable nalloc with memory sanitizer\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "e086e68fa33e8fe9c4917a0c1fa7e990f084efd8",
      "tree": "09d48f3d4ce2281811cb204cf54098a2ab374a4b",
      "parents": [
        "cf155de014fc6c5cb199dd681dd5c8fb70429072"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Jan 10 19:55:49 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Jan 10 19:55:49 2026 +0200"
      },
      "message": "refactor: Improve naming clarity in `png_image_write*` and `png_write_*`\n\nFollowing up on commit e4f7ad4ea2a471776c81dda4846b7691925d9786:\n\nAfter we renamed variables and fields in pngread.c for better clarity,\nwe are doing the same in pngwrite.c. Apply the following name changes:\n\n- Rename the image write control struct field `row_bytes` to `row_step`\n  in order to clarify that this represents the signed stride between\n  rows (which may include padding or be negative for bottom-up layouts),\n  not the actual byte count of row data.\n\n- Standardize the local variable names to follow the new names in the\n  image write control struct: replace `row_bytes` with `row_step`.\n\nAlso following up on commit e4f7ad4ea2a471776c81dda4846b7691925d9786:\nfix a typo inside a comment in pngread.c.\n"
    },
    {
      "commit": "cf155de014fc6c5cb199dd681dd5c8fb70429072",
      "tree": "6a0eb099192ff8ea5b1b37950fa3ead0eb7024dc",
      "parents": [
        "ef14664904b1b192b6bbd3ff99d2f0ce65a8a5ea"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Jan 10 15:20:18 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Jan 10 15:20:18 2026 +0200"
      },
      "message": "fix: Remove incorrect truncation casts from `png_write_image_*`\n\nThe type of the row stride (`display-\u003erow_bytes`) is ptrdiff_t. Casting\nto png_uint_16 before division will truncate large strides, causing\nincorrect pointer arithmetic for images exceeding 65535 bytes per row.\nFor bottom-up images (negative stride), the truncation also corrupts\nthe sign, advancing the row pointer forward instead of backward.\n\nRemove the erroneous casts and let the compiler handle the pointer\narithmetic correctly. Also replace `sizeof (png_uint_16)` with 2.\n\nAdd regression test via `pngstest --stride-extra N` where N \u003e 32767\ntriggers the affected code paths.\n\nA NOTE ABOUT HISTORY:\nThe original code in libpng 1.5.6 (2011) had no such casts. They were\nintroduced in libpng 1.6.26 (2016), likely to silence compiler warnings\non 16-bit systems where the cast would be a no-op. On 32/64-bit systems\nthe cast truncates the strides above 65535 and corrupts the negative\nstrides.\n"
    },
    {
      "commit": "ef14664904b1b192b6bbd3ff99d2f0ce65a8a5ea",
      "tree": "5ed06f7acedc994efafc221ddc575dc99d8c1904",
      "parents": [
        "e4f7ad4ea2a471776c81dda4846b7691925d9786"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Jan 09 23:13:03 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Jan 09 23:13:03 2026 +0200"
      },
      "message": "refactor: Improve naming clarity in the `png_image_read_*` functions\n\nFollowing up on commit e4f7ad4ea2a471776c81dda4846b7691925d9786:\n\nThe original naming of variables and fields in pngread.c was rather\ninconsistent and confusing. Apply the following sequence of renames:\n\n- Rename the image read control struct field `row_bytes` to `row_step`\n  in order to clarify that this represents the signed stride between\n  rows (which may include padding or be negative for bottom-up layouts),\n  not the actual byte count of row data.\n\n- Standardize all local variable names: replace `step_row` and\n  `row_bytes` with `row_step` throughout. Remove unnecessary casts to\n  unsigned integer type in the direct read paths, preserving the signed\n  `ptrdiff_t` type for correct stride semantics.\n\n- Rename the local variable `copy_bytes` to `row_bytes` in order to\n  emphasize the semantic distinction between the row\u0027s byte count (used\n  for memcpy length) and the row step (used for pointer advancement).\n\nAlso add clarifying comments around the security-critical memcpy\noperation to document why row bytes and row step must be kept distinct.\n"
    },
    {
      "commit": "e4f7ad4ea2a471776c81dda4846b7691925d9786",
      "tree": "c73b25b75e2024554794efd51d1cad0a8f0084f1",
      "parents": [
        "9e4e247afbe809bac24bf70f531b23427e3f20ec"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Jan 09 20:51:53 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Jan 09 20:51:53 2026 +0200"
      },
      "message": "Fix a heap buffer over-read in `png_image_read_direct_scaled`\n\nFix a regression from commit 218612ddd6b17944e21eda56caf8b4bf7779d1ea.\n\nThe function `png_image_read_direct_scaled`, introduced by the fix for\nCVE-2025-65018, copies transformed row data from an intermediate buffer\n(`local_row`) to the user\u0027s output buffer. The copy incorrectly used\n`row_bytes` (the caller\u0027s stride) as the size parameter to memcpy, even\nthough `local_row` is only `png_get_rowbytes()` bytes long.\n\nThis causes a heap buffer over-read when:\n\n1. The caller provides a padded stride (e.g., for memory alignment):\n   memcpy reads past the end of `local_row` by `stride - row_width`\n   bytes.\n\n2. The caller provides a negative stride (for bottom-up layouts):\n   casting ptrdiff_t to size_t produces ~2^64, causing memcpy to\n   attempt reading exabytes, resulting in an immediate crash.\n\nThe fix consists in using the size of the row buffer for the copy and\nusing the stride for pointer advancement only.\n\nReported-by: Petr Simecek \u003csimecek@users.noreply.github.com\u003e\nAnalyzed-by: Stanislav Fort\nAnalyzed-by: Pavel Kohout\nCo-authored-by: Petr Simecek \u003csimecek@users.noreply.github.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "9e4e247afbe809bac24bf70f531b23427e3f20ec",
      "tree": "e550af2b139f2e4f184be952eeb01d65c81ead1a",
      "parents": [
        "54c127584fe1f9b4fbfb5893cdbfc8fb5570e6bc"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Jan 07 15:47:43 2026 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Jan 07 15:47:43 2026 +0200"
      },
      "message": "Update the copyright year\n"
    },
    {
      "commit": "54c127584fe1f9b4fbfb5893cdbfc8fb5570e6bc",
      "tree": "e2bad3338802d67835be4f30fdbe7c79365b5a90",
      "parents": [
        "0e894374dd7ee53039c6d84bd538dd7f16fc4cbe"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Oct 24 22:21:39 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Dec 08 17:57:47 2025 +0200"
      },
      "message": "chore: Tidy up whitespace in declarations and definitions\n\nThis is a cherry-pick of commit caa0c733f32661edf8ab82ad854c9fc9b14c8de1\nfrom branch \u0027libpng18\u0027.\n"
    },
    {
      "commit": "0e894374dd7ee53039c6d84bd538dd7f16fc4cbe",
      "tree": "f35ec80472e8e94dbd84e83eb0643900f88de75e",
      "parents": [
        "e8d40e1280f983d1898eff351b2fc7154705d8d1"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Oct 13 16:49:58 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Dec 08 17:57:47 2025 +0200"
      },
      "message": "fix: Use `png_voidp` instead of `voidp` in pngread.c and pngwrite.c\n\nA benign type error introduced in libpng-1.0.9beta1 (Nov 2000) went\nunnoticed in reviews and testing for nearly 25 years.\n\nThe type `voidp` (from zconf.h via zlib.h) is a plain \"void pointer\".\nBy contrast, `png_voidp` (from pngconf.h via png.h) was defined as a\n\"void FAR pointer\" on legacy i8086 memory models (MSDOS, OS/2 2.x,\nWin16), and as a plain \"void pointer\" elsewhere. The support for FAR\npointers in mixed-memory models was removed in libpng-1.6.0, which\ninadvertently \"fixed\" the underlying error. However, all libpng\nversions from 1.0.9 to 1.5.30 (Nov 2000–Sep 2017) remained broken on\nthese models; and yet, nobody noticed.\n\nThis typo illustrates how long we\u0027ve been carrying pointer abstraction\nbaggage without any confirmed benefit.\n\nThis is a cherry-pick of commit 0ff384943db3732fe6fe9e132b00eb3373072b41\nfrom branch \u0027libpng18\u0027.\n\nReviewed-by: Chris Blume \u003cProgramMax@gmail.com\u003e\nReviewed-by: Tobias Stoeckmann \u003ctobias@stoeckmann.org\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "e8d40e1280f983d1898eff351b2fc7154705d8d1",
      "tree": "207b9d5275f57c8dab88a8f1585120029f53bab4",
      "parents": [
        "4e3f57d50f552841550a36eabbb3fbcecacb7750"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Dec 08 15:36:40 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Dec 08 15:36:40 2025 +0200"
      },
      "message": "Bump version to 1.6.54.git\n"
    },
    {
      "commit": "4e3f57d50f552841550a36eabbb3fbcecacb7750",
      "tree": "d6fac87eacfc3ecb34a85fd2d7c3c296583463ad",
      "parents": [
        "ff615fdcaf393ec2402bfafebadaa30b32fe5f3a"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Dec 05 23:46:38 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Dec 05 23:46:38 2025 +0200"
      },
      "message": "Release libpng version 1.6.53\n"
    },
    {
      "commit": "ff615fdcaf393ec2402bfafebadaa30b32fe5f3a",
      "tree": "05ec43826ff48cff7788490c22995da9331ecb1b",
      "parents": [
        "c225b7d32be292dff6607a133c3d3d665bb8f0cb"
      ],
      "author": {
        "name": "Luis Caro Campos",
        "email": "3535649+jcar87@users.noreply.github.com",
        "time": "Fri Dec 05 16:28:45 2025 +0000"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Dec 05 20:56:16 2025 +0200"
      },
      "message": "build: Remove leftover ASM language from CMake `project`\n\nReported-by: Andrew Tribick \u003cajtribick@googlemail.com\u003e\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "c225b7d32be292dff6607a133c3d3d665bb8f0cb",
      "tree": "61a72bb09950c6bb0e6917237f9bc2427db6d1e5",
      "parents": [
        "91bcccda7b20b199dc14056a0c77f68e117a4f90"
      ],
      "author": {
        "name": "Philippe Antoine",
        "email": "contact@catenacyber.fr",
        "time": "Wed Dec 03 21:58:16 2025 +0100"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Dec 05 20:33:02 2025 +0200"
      },
      "message": "oss-fuzz: Use the nalloc fuzz target\n\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "91bcccda7b20b199dc14056a0c77f68e117a4f90",
      "tree": "f2a62d10dd509f5beb2bc9deb6f38c3c2e3301b6",
      "parents": [
        "57f0a71c6135b680b84229a34c145859161479d0"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Dec 05 18:07:12 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Dec 05 18:07:12 2025 +0200"
      },
      "message": "riscv: Delete unused helper functions and macros\n\nRemove dead code left over from earlier iterations:\n- `abs_diff`, `abs_sum`, `prefix_sum`: unused helper functions;\n- `MIN_CHUNK_LEN`, `MAX_CHUNK_LEN`: macros used by `prefix_sum`.\n"
    },
    {
      "commit": "57f0a71c6135b680b84229a34c145859161479d0",
      "tree": "4de6f43df9921296afe24b56c80664deb8d5542c",
      "parents": [
        "b1e36caccb1ada29af1e848718b449be410a5b0b"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Dec 05 17:37:33 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Dec 05 17:37:33 2025 +0200"
      },
      "message": "Update the list of contributing authors\n\nAlso reformat the attribution comment in riscv/filter_rvv_intrinsics.c\n"
    },
    {
      "commit": "b1e36caccb1ada29af1e848718b449be410a5b0b",
      "tree": "3f1d0ac0741139e6b30b4bdab6667637e7ac5cfb",
      "parents": [
        "2b3a667966465f00028f13017de510250a162103"
      ],
      "author": {
        "name": "Alexander Smorkalov",
        "email": "alexander.smorkalov@opencv.ai",
        "time": "Fri Dec 05 08:15:30 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Dec 05 17:32:08 2025 +0200"
      },
      "message": "riscv: Fix the RVV build\n\nUse the correct RVV intrinsic, i.e.,\n`__riscv_vaaddu_vv_u8m1` instead of `__riscv_vaaddu_wx_u8m1`.\n\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "2b3a667966465f00028f13017de510250a162103",
      "tree": "9dd92e14afe219a59d1aa97088b87505f24e40b0",
      "parents": [
        "d1ec15266204deb4102d2b5e40216bb7637261c8"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Dec 05 11:49:50 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Dec 05 11:49:50 2025 +0200"
      },
      "message": "Update the main AUTHORS file\n"
    },
    {
      "commit": "d1ec15266204deb4102d2b5e40216bb7637261c8",
      "tree": "c835307551b6fa9a5488745e96b93b60d23cf75e",
      "parents": [
        "d7447f087be18d790abc19c641c665494e224e4e"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Dec 05 11:34:10 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Dec 05 11:34:10 2025 +0200"
      },
      "message": "Refer to CVE-2025-66293 in a comment about a vulnerability fix\n\nFollowing up on commit a05a48b756de63e3234ea6b3b938b8f5f862484a.\n"
    }
  ],
  "next": "d7447f087be18d790abc19c641c665494e224e4e"
}
