)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "d7447f087be18d790abc19c641c665494e224e4e",
      "tree": "341e9306eda8e8194bc893b8db80cf2daebb3bfd",
      "parents": [
        "fbed16182b92eeb3a06d96e49f0836d450318098"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Dec 05 11:32:17 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Dec 05 11:32:17 2025 +0200"
      },
      "message": "Bump version to 1.6.53.git\n"
    },
    {
      "commit": "fbed16182b92eeb3a06d96e49f0836d450318098",
      "tree": "ec164a949da4508da420fecfcd4d43fbe1f315cc",
      "parents": [
        "5c7d02d73b12aa96ff5bc27f3695d3fe3c6b1dd7"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Dec 03 21:48:14 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Dec 03 21:48:14 2025 +0200"
      },
      "message": "Release libpng version 1.6.52\n"
    },
    {
      "commit": "5c7d02d73b12aa96ff5bc27f3695d3fe3c6b1dd7",
      "tree": "f8174a5f306953213ccf47741559ffe18d34593a",
      "parents": [
        "5b159aed75e9d02d065026b8eeefcfc8b7c6b8e4"
      ],
      "author": {
        "name": "Philippe Antoine",
        "email": "contact@catenacyber.fr",
        "time": "Fri Nov 21 22:12:56 2025 +0100"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Dec 03 20:49:47 2025 +0200"
      },
      "message": "oss-fuzz: Add allocation failure fuzzing via nalloc\n\nIntegrate nalloc fuzzing to systematically test error handling paths\nwhen memory allocations fail. This technique previously found a memory\nleak in pCAL chunk handling and is already in production use via\nOSS-Fuzz on libwebp and libssh.\n\nThis is enabled via the `_nalloc` target suffix or the `NALLOC_FREQ`\nenvironment variable.\n\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "5b159aed75e9d02d065026b8eeefcfc8b7c6b8e4",
      "tree": "1db136065f3c5552458dac600e8bd993962dfaeb",
      "parents": [
        "d27beddf9f4d80b8998791cbb91fe684820ff387"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Dec 03 20:31:19 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Dec 03 20:31:19 2025 +0200"
      },
      "message": "riscv: Reformat the contributor list and update the AUTHORS file\n"
    },
    {
      "commit": "d27beddf9f4d80b8998791cbb91fe684820ff387",
      "tree": "184bda058fab75d4846d7954d767445c4e76a79b",
      "parents": [
        "87ed1cd2b802ba8df133e6cbc91a5b4fdaf87cf6"
      ],
      "author": {
        "name": "liangjunzhao",
        "email": "junzhao.liang@spacemit.com",
        "time": "Tue Dec 02 09:46:07 2025 +0800"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Dec 03 20:31:19 2025 +0200"
      },
      "message": "riscv: Fix undefined behavior in `png_read_filter_row_paeth_rvv`\n\nThe existing implementation produced incorrect output at -O2/-O3 due\nto reliance on RVV mask-agnostic element preservation.\n\nThe old code computed absolute values using masked operations:\n\n    vbool8_t p_neg_mask \u003d __riscv_vmslt_vx_i16m2_b8(p, 0, vl);\n    vint16m2_t pa \u003d __riscv_vrsub_vx_i16m2_m(p_neg_mask, p, 0, vl);\n\nPer RVV 1.0 specification (section 5.4), the elements where the mask\nbit is 0 have agnostic tail policy: implementations may either preserve\nthe original value or may set all bits to 1. This is explicitly\nimplementation-defined and not guaranteed.\n\nWhen `p \u003e\u003d 0`, the mask bit is 0, so the \"preserved\" value of `pa` may\nbe clobbered to 0xFFFF depending on microarchitecture and optimization\nlevel. This causes silent data corruption in decoded PNG images.\n\nFix by eliminating all masked operations in favour of unconditional\nvector operations:\n\n1. Compute the absolute value via `min(x, -x)` in unsigned arithmetic:\n\n       vuint16m2_t tmp \u003d __riscv_vrsub_vx_u16m2(p, 0, vl);\n       vuint16m2_t pa \u003d __riscv_vminu_vv_u16m2(p, tmp, vl);\n\n   This works because operands are u8 values widened to u16.\n   For any difference `d \u003d b - c` where `b` and `c` are in `[0...255]`:\n   - If `b \u003e\u003d c`:\n     `d` is in [0...255], and `-d (mod 2^16)` is in `[65281...65535]`.\n   - If `b \u003c c`:\n     `d` is in `[65281...65535]`, and `-d (mod 2^16)` is in `[1...255]`.\n   In both cases, `min(d, -d)` yields `|b - c|`.\n\n2. Select the Paeth predictor via iterative min-tracking with vmerge:\n\n       vbool8_t m1 \u003d __riscv_vmsltu_vv_u16m2_b8(pb, pa, vl);\n       pa \u003d __riscv_vmerge_vvm_u16m2(pa, pb, m1, vl);\n       a \u003d __riscv_vmerge_vvm_u8m1(a, b, m1, vl);\n\n   The vmerge instruction explicitly defines all lanes (no agnostic\n   elements), and the strict less-than comparison preserves correct\n   tie-breaking per the PNG specification (prefer `a` over `b` over\n   `c` when equal).\n\nThe new implementation is also simpler (with fewer instructions) and\nprovides ~14% speedup over scalar on SpacemiT K1.\n\nReported-by: Filip Wasil \u003cf.wasil@samsung.com\u003e\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "87ed1cd2b802ba8df133e6cbc91a5b4fdaf87cf6",
      "tree": "6255e5044e127c616a2047046d2261e3876c3155",
      "parents": [
        "a05a48b756de63e3234ea6b3b938b8f5f862484a"
      ],
      "author": {
        "name": "liangjunzhao",
        "email": "junzhao.liang@spacemit.com",
        "time": "Mon Dec 01 15:29:26 2025 +0800"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Dec 03 20:31:19 2025 +0200"
      },
      "message": "riscv: Improve averaging performance in `png_read_filter_row_avg_rvv`\n\nReplace the two-instruction sequence (vwaddu and vnsrl) with a single\nvaaddu instruction for computing the average.\n\nThe vaaddu instruction with vxrm\u003d2 (round-toward-zero) produces\nidentical results to the widening add followed by narrowing shift,\nbut in a single operation.\n\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "a05a48b756de63e3234ea6b3b938b8f5f862484a",
      "tree": "d5fb8c3057818613d9a3bd42e215a2084214f884",
      "parents": [
        "788a624d7387a758ffd5c7ab010f1870dea753a1"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Dec 01 22:31:54 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Dec 01 22:31:54 2025 +0200"
      },
      "message": "Finalize the fix for out-of-bounds read in `png_image_read_composite`\n\nFollowing up on commit 788a624d7387a758ffd5c7ab010f1870dea753a1.\n\nThe previous commit added a defensive bounds check to address the\nsecurity issue (out-of-bounds read), but noted that the correctness\nissue remained: when the clamp triggered, the affected pixels were\nclamped to white instead of the correct composited color.\n\nThis commit addresses the correctness issue by fixing the flag\nsynchronization error identified in the previous commit\u0027s TODO:\n\n1. In `png_init_read_transformations`:\n   Clear PNG_FLAG_OPTIMIZE_ALPHA when clearing PNG_COMPOSE for palette\n   images. This correctly signals that the data is sRGB, not linear\n   premultiplied.\n\n2. In `png_image_read_composite`:\n   Check PNG_FLAG_OPTIMIZE_ALPHA and use the appropriate composition\n   formula. When set, use the existing linear composition. When cleared\n   (palette composition already done), use sRGB composition to match\n   what was done to the palette.\n\nRetain the previous clamp to the valid range as belt-and-suspenders\nprotection against any other unforeseen cases.\n"
    },
    {
      "commit": "788a624d7387a758ffd5c7ab010f1870dea753a1",
      "tree": "2b4f9dfa76e3e5a68b529e12bb7636b5da0b5efa",
      "parents": [
        "cf53e54ccf631d8de68a30ebb3b8eeed1d6f1a08"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Nov 29 00:39:16 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Nov 29 00:39:16 2025 +0200"
      },
      "message": "Fix an out-of-bounds read in `png_image_read_composite`\n\nAdd a defensive bounds check before calling PNG_sRGB_FROM_LINEAR to\nprevent reading up to 506 entries (1012 bytes) past `png_sRGB_base[]`.\n\nFor palette images with gamma, `png_init_read_transformations`\nclears PNG_COMPOSE after compositing on the palette, but it leaves\nPNG_FLAG_OPTIMIZE_ALPHA set. The simplified API then calls\n`png_image_read_composite` with sRGB data (not linear premultiplied),\ncausing the index to reach 1017. (The maximum valid index is 511.)\n\nNOTE:\nThis is a defensive fix that addresses the security issue (out-of-bounds\nread) but *NOT* the correctness issue (wrong output). When the clamp\ntriggers, the affected pixels are clamped to white instead of the\ncorrect composited color. Valid PNG images may render incorrectly with\nthe simplified API.\n\nTODO:\nWe already know the root cause is a flag synchronization error.\nFor palette images with gamma, `png_init_read_transformations`\nclears PNG_COMPOSE but leaves PNG_FLAG_OPTIMIZE_ALPHA set, causing\n`png_image_read_composite` to misinterpret sRGB data as linear\npremultiplied. However, we have yet to implement an architectural fix\nthat requires coordinating the simplified API with the transformation\npipeline.\n\nReported-by: flyfish101 \u003cflyfish101@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "cf53e54ccf631d8de68a30ebb3b8eeed1d6f1a08",
      "tree": "291a4bd0ae3263d74f617bdf8f79e3995e6dc359",
      "parents": [
        "49363adcfaf098748d7a4c8c624ad8c45a8c3a86"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 28 17:05:40 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 28 17:05:40 2025 +0200"
      },
      "message": "Bump version to 1.6.52.git\n"
    },
    {
      "commit": "49363adcfaf098748d7a4c8c624ad8c45a8c3a86",
      "tree": "b9771f2b9ea6ea5fde4677c06d5dc2bf41ba4980",
      "parents": [
        "869ed49945e48ca31e5add8e727fa07dd7b10dc8"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 21 23:01:00 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 21 23:01:00 2025 +0200"
      },
      "message": "Release libpng version 1.6.51\n"
    },
    {
      "commit": "869ed49945e48ca31e5add8e727fa07dd7b10dc8",
      "tree": "ffe4632c39a164dd82750e0e098004296cf86396",
      "parents": [
        "fe855702dec58a205580dc127e2c92d765e61262"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 21 21:52:02 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 21 21:52:02 2025 +0200"
      },
      "message": "Update the main AUTHORS file\n"
    },
    {
      "commit": "fe855702dec58a205580dc127e2c92d765e61262",
      "tree": "1ccf12946ff2ed2b073d6d80f2f648c478c32dee",
      "parents": [
        "b7fc38c91008c50b825bedfc693b1f594ca0e6f2"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 21 21:40:56 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 21 21:40:56 2025 +0200"
      },
      "message": "chore: Rerun `./autogen.sh --maintainer`\n"
    },
    {
      "commit": "b7fc38c91008c50b825bedfc693b1f594ca0e6f2",
      "tree": "6275de6a86f2bc6d8310f3fc72cc03b497ee93b2",
      "parents": [
        "c53a3237e3de2d0efb86cdc9de52fac18b143fa0"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 21 20:43:36 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 21 20:43:36 2025 +0200"
      },
      "message": "ci: Update the branch and tag exclusions on AppVeyor CI\n\nAs we plan to release libpng-1.8.0, with the \u0027libpng18\u0027 branch being\nthe new default, we are also discontinuing the \u0027master\u0027 branch as an\nalias branch. Update the exclusions in the AppVeyor CI configuration\nfile, replacing \u0027libpng00\u0027 to \u0027libpng18\u0027 with \u0027master\u0027.\n\nAlso update the regular expression that excludes release tags to\naccount for all \u0027vNN.NN.NN\u0027 tag names.\n"
    },
    {
      "commit": "c53a3237e3de2d0efb86cdc9de52fac18b143fa0",
      "tree": "3ceea2684f5f619f8068e3039d54858dd65ac146",
      "parents": [
        "728ac129b152654660fb22ce49d34ad2fc507bb2"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 21 19:12:40 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 21 19:12:40 2025 +0200"
      },
      "message": "chore: Disable automatic charset detection in .editorconfig-checker\n\nWork around a regression in editorconfig-checker version 3.5.0.\nIn this new version, editorconfig-checker fails to validate ASCII as\na valid subset of UTF-8.\n\nThis commit unblocks the GitHub linting action.\n"
    },
    {
      "commit": "728ac129b152654660fb22ce49d34ad2fc507bb2",
      "tree": "bdc440228c3cdf7e0178492caf3cc5958e9c7463",
      "parents": [
        "3a3d485a7564de4f1f348628864a774a4af16af8"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 21 19:03:57 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 21 19:03:57 2025 +0200"
      },
      "message": "chore: Update .gitignore to exclude more local files\n"
    },
    {
      "commit": "3a3d485a7564de4f1f348628864a774a4af16af8",
      "tree": "04396b609631c29b034917be176fafe8190f98db",
      "parents": [
        "218612ddd6b17944e21eda56caf8b4bf7779d1ea"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 21 17:57:36 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 21 17:57:36 2025 +0200"
      },
      "message": "riscv: Fix `-Wundef` compiler warnings and relax RVV version checks\n\nFix a regression from commit 816b008d8fcb9f741bcacdb29e72955914936856.\n\nWhen the build was not optimized for RVV (`PNG_RISCV_RVV_OPT \u003d\u003d 0`),\nthe macro PNG_RISCV_RVV_IMPLEMENTATION was left undefined, even though\nit is checked with `#if` instead of `#ifdef` in the source code.\nAdditionally, the RVV version checks included an upper bound check\n(`__riscv_v \u003c 1900000`) that disabled the RVV-optimized path for any\nfuture RVV 1.9+ version.\n\nWe added the missing fallback definition and we removed the v1.9+ upper\nbound. The RVV optimizations are now enabled for any RISC-V compiler\nthat supports RVV 1.0 or later, following the expectation that minor\nversion updates shall maintain compatibility.\n"
    },
    {
      "commit": "218612ddd6b17944e21eda56caf8b4bf7779d1ea",
      "tree": "098ab373eda98977a50ad02f59d95873e2654bb2",
      "parents": [
        "16b5e3823918840aae65c0a6da57c78a5a496a4d"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Nov 19 21:45:13 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Nov 19 21:45:13 2025 +0200"
      },
      "message": "Rearchitect the fix to the buffer overflow in `png_image_finish_read`\n\nUndo the fix from commit 16b5e3823918840aae65c0a6da57c78a5a496a4d.\nThat fix turned out to be unnecessarily limiting. It rejected all\n16-to-8 bit transformations, although the vulnerability only affects\ninterlaced PNGs where `png_combine_row` writes using IHDR bit-depth\nbefore the transformation completes.\n\nThe proper solution is to add an intermediate `local_row` buffer,\nspecifically for the slow but necessary step of 16-to-8 bit conversion\nof interlaced images. (The processing of non-interlaced images remains\nintact, using the fast path.) We added the flag `do_local_scale` and\nthe function `png_image_read_direct_scaled`, following the pattern that\ninvolves `do_local_compose`.\n\nIn conclusion:\n- The 16-to-8 bit transformations of interlaced images are now safe,\n  as they use an intermediate buffer.\n- The 16-to-8 bit transformations of non-interlaced images remain safe,\n  as the fast path remains unchanged.\n- All our regression tests are now passing.\n"
    },
    {
      "commit": "16b5e3823918840aae65c0a6da57c78a5a496a4d",
      "tree": "f7f83399de6dee8edbe2da22a12df42e2cd04f6f",
      "parents": [
        "08da33b4c88cfcd36e5a706558a8d7e0e4773643"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Nov 17 20:38:47 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Nov 17 20:38:47 2025 +0200"
      },
      "message": "Fix a buffer overflow in `png_image_finish_read`\n\nReject bit-depth mismatches between IHDR and the requested output\nformat. When a 16-bit PNG is processed with an 8-bit output format\nrequest, `png_combine_row` writes using the IHDR depth before\ntransformation, causing writes beyond the buffer allocated via\n`PNG_IMAGE_SIZE(image)`.\n\nThe validation establishes a safe API contract where\n`PNG_IMAGE_SIZE(image)` is guaranteed to be sufficient across the\ntransformation pipeline.\n\nExample overflow (32×32 pixels, 16-bit RGB to 8-bit RGBA):\n- Input format: 16 bits/channel × 3 channels \u003d 6144 bytes\n- Output buffer: 8 bits/channel × 4 channels \u003d 4096 bytes\n- Overflow: 6144 bytes - 4096 bytes \u003d 2048 bytes\n\nLarger images produce proportionally larger overflows. For example,\nfor 256×256 pixels, the overflow is 131072 bytes.\n\nReported-by: yosiimich \u003cyosiimich@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "08da33b4c88cfcd36e5a706558a8d7e0e4773643",
      "tree": "508ef38d660c902db286543719b2e3e221096b03",
      "parents": [
        "83b23a888b4395c3ae0af3f6d484fce3e4a81155"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Nov 12 13:46:23 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Nov 12 13:46:23 2025 +0200"
      },
      "message": "Fix a buffer overflow in `png_init_read_transformations`\n\nThe palette compositing code in `png_init_read_transformations` was\nincorrectly applying background compositing when PNG_FLAG_OPTIMIZE_ALPHA\nwas set. This violated the premultiplied alpha invariant\n`component \u003c\u003d alpha` expected by `png_image_read_composite`, causing\nvalues that exceeded the valid range for the PNG_sRGB_FROM_LINEAR lookup\ntables.\n\nWhen PNG_ALPHA_OPTIMIZED is active, palette entries should contain pure\npremultiplied RGB values without background compositing. The background\ncompositing must happen later in `png_image_read_composite` where the\nactual background color from the PNG file is available.\n\nThe fix consists in introducing conditional behavior based on\nPNG_FLAG_OPTIMIZE_ALPHA: when set, the code performs only\npremultiplication using the formula `component * alpha + 127) / 255`\nwith proper gamma correction. When not set, the original background\ncompositing calculation based on the `png_composite` macro is preserved.\n\nThis prevents buffer overflows in `png_image_read_composite` where\nout-of-range premultiplied values would cause out-of-bounds array access\nin `png_sRGB_base[]` and `png_sRGB_delta[]`.\n\nReported-by: Samsung-PENTEST \u003cSamsung-PENTEST@users.noreply.github.com\u003e\nAnalyzed-by: John Bowler \u003cjbowler@acm.org\u003e\n"
    },
    {
      "commit": "83b23a888b4395c3ae0af3f6d484fce3e4a81155",
      "tree": "377332b0c6ef5ba00d316cf8e90a78a86949868d",
      "parents": [
        "6a528eb5fd0dd7f6de1c39d30de0e41473431c37"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Nov 10 11:11:42 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Nov 10 11:11:42 2025 +0200"
      },
      "message": "refactor: Delete unreachable code from `png_do_read_transformations`\n\nAfter calling `png_do_quantize` from `png_do_read_transformations`,\n`rowbytes` (i.e. the length in bytes of a non-empty row) is always\nnon-zero. The subsequent call to `png_error` was therefore unreachable.\n"
    },
    {
      "commit": "6a528eb5fd0dd7f6de1c39d30de0e41473431c37",
      "tree": "8124b98bd3e9f9cee50ffe63641d0badecfd4f39",
      "parents": [
        "ea094764f3436e3c6524622724c2d342a3eff235"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Nov 08 23:58:26 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Nov 10 11:11:42 2025 +0200"
      },
      "message": "Fix a buffer overflow in `png_do_quantize`\n\nAllocate the quantize_index array to PNG_MAX_PALETTE_LENGTH (256 bytes)\ninstead of num_palette bytes. This approach matches the allocation\npattern for `palette[]`, `trans_alpha[]` and `riffled_palette[]` which\nwere similarly oversized in libpng 1.2.1 to prevent buffer overflows\nfrom malformed PNG files with out-of-range palette indices.\n\nOut-of-range palette indices `index \u003e\u003d num_palette` will now read\nidentity-mapped values from the `quantize_index` array (where index N\nmaps to palette entry N). This prevents undefined behavior while\navoiding runtime bounds checking overhead in the performance-critical\npixel processing loop.\n\nReported-by: Samsung-PENTEST \u003cSamsung-PENTEST@users.noreply.github.com\u003e\nAnalyzed-by: degrigis \u003cdegrigis@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "ea094764f3436e3c6524622724c2d342a3eff235",
      "tree": "624f547b9a8a51e0d63572c9cabc050b148e82c0",
      "parents": [
        "2bd84c019c300b78e811743fbcddb67c9d9bf821"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Nov 08 17:16:59 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Nov 10 11:11:42 2025 +0200"
      },
      "message": "Fix a memory leak in function `png_set_quantize`; refactor\n\nRelease the previously-allocated array `quantize_index` before\nreallocating it. This avoids leaking memory when the function\n`png_set_quantize` is called multiple times on the same `png_struct`.\n\nThis function assumed single-call usage, but fuzzing revealed that\nrepeated calls would overwrite the pointers without freeing the\noriginal allocations, leaking 256 bytes per call for `quantize_index`\nand additional memory for `quantize_sort` when histogram-based\nquantization is used.\n\nAlso remove the array `quantize_sort` from the list of `png_struct`\nmembers and make it a local variable. This array is initialized,\nused and released exclusively inside the function `png_set_quantize`.\n\nReported-by: Samsung-PENTEST \u003cSamsung-PENTEST@users.noreply.github.com\u003e\nAnalyzed-by: degrigis \u003cdegrigis@users.noreply.github.com\u003e\nReviewed-by: John Bowler \u003cjbowler@acm.org\u003e\n"
    },
    {
      "commit": "2bd84c019c300b78e811743fbcddb67c9d9bf821",
      "tree": "b2ec61121b3941d61a2959bebc7213da96bb1dfb",
      "parents": [
        "bd41aa64d34609a9f39944fd241c24f38bb7c3d6"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Nov 07 22:40:05 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sun Nov 09 18:39:33 2025 +0200"
      },
      "message": "Fix a heap buffer overflow in `png_write_image_8bit`\n\nThe condition guarding the pre-transform path incorrectly allowed 8-bit\ninput data to enter `png_write_image_8bit` which expects 16-bit input.\nThis caused out-of-bounds reads when processing 8-bit grayscale+alpha\nimages (GitHub #688), or 8-bit RGB or RGB+alpha images (GitHub #746),\nwith the `convert_to_8bit` flag set (an invalid combination that should\nbypass the pre-transform path).\n\nThe second part of the condition, i.e.\n\n    colormap \u003d\u003d 0 \u0026\u0026 convert_to_8bit !\u003d 0\n\nfailed to verify that input was 16-bit, i.e.\n\n    linear !\u003d 0\n\ncontradicting the comment \"This only applies when the input is 16-bit\".\n\nThe fix consists in restructuring the condition to ensure both the\n`alpha` path and the `convert_to_8bit` path require linear (16-bit)\ninput. The corrected condition, i.e.\n\n    linear !\u003d 0 \u0026\u0026 (alpha !\u003d 0 || display-\u003econvert_to_8bit !\u003d 0)\n\nmatches the expectation of the `png_write_image_8bit` function and\nprevents treating 8-bit buffers as 16-bit data.\n\nReported-by: Samsung-PENTEST \u003cSamsung-PENTEST@users.noreply.github.com\u003e\nReported-by: weijinjinnihao \u003cweijinjinnihao@users.noreply.github.com\u003e\nAnalyzed-by: degrigis \u003cdegrigis@users.noreply.github.com\u003e\nReviewed-by: John Bowler \u003cjbowler@acm.org\u003e\n"
    },
    {
      "commit": "bd41aa64d34609a9f39944fd241c24f38bb7c3d6",
      "tree": "8953efa2f50ec27c1450ec61efc2a045b613a6ea",
      "parents": [
        "c6913e22dfb791e02d333cd174e73c4d6c22b805"
      ],
      "author": {
        "name": "Tobias Stoeckmann",
        "email": "tobias@stoeckmann.org",
        "time": "Mon Sep 29 22:06:04 2025 +0200"
      },
      "committer": {
        "name": "Tobias Stoeckmann",
        "email": "tobias@stoeckmann.org",
        "time": "Mon Sep 29 22:10:27 2025 +0200"
      },
      "message": "api! Remove the experimental (and incomplete) ERROR_NUMBERS code\n\nThe purpose of this feature is to optionally prepend standardized\nnumbers to error and warning messages. The ERROR_NUMBERS feature was\nfirst drafted in libpng-1.2.0 and further developed in libpng-1.4.0;\nand yet, it was always disabled by default, and never completed.\n\nIn the light of a recent report concerning the security hazards arising\nfrom enabling this code in custom libpng builds, we think it\u0027s best to\nsimply remove all the code written to support this feature.\n\nBased on removal in libpng18, but keeping functions and options as\nno-ops for backwards compatibility.\n\nCo-authored-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "c6913e22dfb791e02d333cd174e73c4d6c22b805",
      "tree": "87b37bf6cde2b80ed1ddf9c2049543c9a6f0c429",
      "parents": [
        "99230a0368ccd1f31e974b9dd8cd8bcebaa30d00"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 29 14:38:59 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 29 14:38:59 2025 +0300"
      },
      "message": "chore: Update .gitignore to exclude local coding agent files\n\nThis is a cherry-pick of commit 8cfbbab55715674d7ea7f123707806f8b44228ab\nfrom branch \u0027libpng18\u0027.\n"
    },
    {
      "commit": "99230a0368ccd1f31e974b9dd8cd8bcebaa30d00",
      "tree": "cafcdae65488476cb4133e81dd8b8cbe64428d3a",
      "parents": [
        "27de46c5a418d0cd8b2bded5a4430ff48deb2920"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Sep 03 21:18:33 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Sep 03 21:18:33 2025 +0300"
      },
      "message": "refactor: Delete conditional compilation for libpng 1.6.0 or earlier\n\nThis is a cherry-pick of commit 5ff29c03bbe19992dcfe173a8db8528b4317ae4b\nfrom branch \u0027libpng18\u0027\n"
    },
    {
      "commit": "27de46c5a418d0cd8b2bded5a4430ff48deb2920",
      "tree": "a97a77f67aa67147e0f0e99a823bed4c460526de",
      "parents": [
        "e4e25f2e986456481c728e2327c9912b30bdcbfb"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 01 16:50:02 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 01 16:50:02 2025 +0300"
      },
      "message": "ci: Run autogen.sh without `--maintainer` in ci_verify_configure.sh\n\nThe autogen.sh script is not user-serviceable in the \u0027libpng16\u0027 branch,\nwhich implies the following:\n\n- It requires the `--maintainer` option.\n- It should not be run by the CI tooling.\n\nStarting from the branch \u0027libpng18\u0027 onwards, the autogen.sh script\nbecomes not only user-serviceable, but also mandatory, which implies:\n\n- It should be run by the CI tooling.\n- It does not require the `--maintainer` option.\n\nRemoving the option `--maintainer` from ci_verify_configure.sh should\nnot only simplify the verification script, but also catch errors that\nmight occur in the above-mentioned scenarios.\n\nThis is a cherry-pick of commit 2cd45a9728fa054ccf17e4cac5a9dd77f46251a0\nfrom branch \u0027libpng18\u0027.\n"
    },
    {
      "commit": "e4e25f2e986456481c728e2327c9912b30bdcbfb",
      "tree": "d37b5f945cc26a27139f54a35529574af0f409a8",
      "parents": [
        "134ab615b617f548e822d8857f1cfc0525aefeba"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 01 16:44:51 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Sep 01 16:44:51 2025 +0300"
      },
      "message": "ci: Add GitHub Actions for verifying libpng on Linux, macOS and Windows\n\nThis is a cherry-pick of commit 03f83b88c16605d670dff6070956a47b116e0787\nfrom branch \u0027libpng18\u0027.\n"
    },
    {
      "commit": "134ab615b617f548e822d8857f1cfc0525aefeba",
      "tree": "d9f9dde6631425457f8efdbf386c676515944607",
      "parents": [
        "8fb19f2e2fe0ffa80c6f462eb1d8685f3d428604"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu Jul 17 23:00:16 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu Jul 17 23:06:50 2025 +0300"
      },
      "message": "chore: Update .gitignore\n\nThis is a cherry-pick of commit c14037646e4f61a7a6cc65c96cf9c3188af25022\nfrom branch \u0027develop\u0027.\n"
    },
    {
      "commit": "8fb19f2e2fe0ffa80c6f462eb1d8685f3d428604",
      "tree": "336cef0a247f5681cdff68becaa125475c2ba3de",
      "parents": [
        "816b008d8fcb9f741bcacdb29e72955914936856"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Jul 14 22:05:50 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Jul 15 19:54:49 2025 +0300"
      },
      "message": "doc: Update and reorganize the png.5 man page\n\nThis is a cherry-pick of commit 929ad805c5aa15321e8236897a8b0225607d3182\nfrom branch \u0027develop\u0027.\n\nCo-authored-by: Chris Lilley \u003cchris@w3.org\u003e\n"
    },
    {
      "commit": "816b008d8fcb9f741bcacdb29e72955914936856",
      "tree": "b4e730428298dbc2b79c6f87c9053410d38f6061",
      "parents": [
        "7916eb7ba08e97ac97c71784e15f78e3ffcd838c"
      ],
      "author": {
        "name": "Filip Wasil",
        "email": "f.wasil@samsung.com",
        "time": "Tue Jul 08 09:48:51 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Jul 15 18:34:33 2025 +0300"
      },
      "message": "riscv: Leverage `__riscv_v` in pngpriv.h\n\nReviewed-by: John Bowler \u003cjbowler@acm.org\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "7916eb7ba08e97ac97c71784e15f78e3ffcd838c",
      "tree": "24e7b02b7e12cb397e00a042438a2b24f08e6f57",
      "parents": [
        "7cecdcae0715bbf7a4b643071e0d39f05d5e7f52"
      ],
      "author": {
        "name": "Filip Wasil",
        "email": "f.wasil@samsung.com",
        "time": "Mon Jul 07 11:08:35 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Jul 15 18:34:33 2025 +0300"
      },
      "message": "riscv: Support only RVV 1.0\n\nReviewed-by: John Bowler \u003cjbowler@acm.org\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "7cecdcae0715bbf7a4b643071e0d39f05d5e7f52",
      "tree": "e5268d3cf6351786e29e350cdcfe260ee3c6e002",
      "parents": [
        "cf59edd364b28de01fa6089a46e6ff8efe677074"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu Jul 03 22:42:11 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu Jul 03 22:42:11 2025 +0300"
      },
      "message": "Harden a vestigial check against overflow inside `png_zalloc`\n\nReported-by: Sergio Atienza Pastor, MTP Métodos y Tecnología\n"
    },
    {
      "commit": "cf59edd364b28de01fa6089a46e6ff8efe677074",
      "tree": "5fb841fc0f8f981583ecb8a7d4fddd95b86d1430",
      "parents": [
        "2b978915d82377df13fcbb1fb56660195ded868a"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Jul 02 20:24:24 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Jul 02 20:24:24 2025 +0300"
      },
      "message": "Bump version to 1.6.51.git\n"
    },
    {
      "commit": "2b978915d82377df13fcbb1fb56660195ded868a",
      "tree": "58d40326652c2f414e8a6a4398f0a7c9fd54340d",
      "parents": [
        "254a64ec307a8151186aea58995dcb43c8e1ce95"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Jul 01 23:50:00 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Jul 01 23:50:00 2025 +0300"
      },
      "message": "Release libpng version 1.6.50\n"
    },
    {
      "commit": "254a64ec307a8151186aea58995dcb43c8e1ce95",
      "tree": "4f00b3a63fa4d934ce02a001ed7be306bb2a3097",
      "parents": [
        "9eb25bd8993a6f70704fedd78985250b20bb7594"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Jul 01 22:57:36 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Jul 01 22:57:36 2025 +0300"
      },
      "message": "doc: Update the man pages to the final PNG-3 specification\n\nAlso make editorial changes regarding the previous PNG specifications.\n"
    },
    {
      "commit": "9eb25bd8993a6f70704fedd78985250b20bb7594",
      "tree": "d3a3b9f73cff6581b089d1fd7f76ef886d5d35ed",
      "parents": [
        "8087a21d0aaf0f206d68506034ac6e0be49c3d77"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Jun 30 23:46:32 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Jun 30 23:46:32 2025 +0300"
      },
      "message": "chore: Rerun `./autogen.sh --maintainer`\n"
    },
    {
      "commit": "8087a21d0aaf0f206d68506034ac6e0be49c3d77",
      "tree": "3ee210250b61429e172def3bb21647d2fbb602a0",
      "parents": [
        "2e5f296bfa04c5a4f885ebad790339641691e4bd"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Jun 30 22:27:17 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Jun 30 22:27:17 2025 +0300"
      },
      "message": "build: Fix the CMake file for cross-platform builds that require `libm`\n\nDetect the availability of `libm` on the target platform.\nPreviously, `libm` was detected on the host platform only.\n\nAlso introduce the variable `PNG_LINK_LIBRARIES`.\nStop using `M_LIBRARY`, which was not namespace-clean.\n"
    },
    {
      "commit": "2e5f296bfa04c5a4f885ebad790339641691e4bd",
      "tree": "3204424667f754b25bb706257083e83033155003",
      "parents": [
        "4266c75f4001355b687bd4ddc24055d970781401"
      ],
      "author": {
        "name": "John Bowler",
        "email": "jbowler@acm.org",
        "time": "Tue Jun 24 14:18:37 2025 -0700"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Jun 30 16:27:22 2025 +0300"
      },
      "message": "fix: Prevent unknown chunks from causing out-of-place IEND errors\n\nPNG_AFTER_IDAT was not set by the IDAT read code if unknown chunk\nhandling was turned on.  This was hidden in the current tests by checks\nwithin the text handling chunks. (For example, pngtest.png has a zTXt\nchunk after IDAT.)\n\nThis change modifies both the sequential and the progressive reader to\nreliably set PNG_AFTER_IDAT when the first non-IDAT chunk is seen and\nbefore that chunk is processed.\n\nThe change is minimalist; PNG_HAVE_CHUNK_AFTER_IDAT can probably be\nremoved and replaced with PNG_AFTER_IDAT.  Making the latter change is\nsomething to be considered in libpng2.\n\nCo-authored-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": "4266c75f4001355b687bd4ddc24055d970781401",
      "tree": "3d272f937f4a51774f0b86c557d1de8178e5e8a6",
      "parents": [
        "f451a4de09eac5533f6da3cbc194e0416984713b"
      ],
      "author": {
        "name": "Filip Wasil",
        "email": "f.wasil@samsung.com",
        "time": "Sat Jun 28 12:00:03 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Jun 28 16:19:11 2025 +0300"
      },
      "message": "riscv: Remove unused argument\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "f451a4de09eac5533f6da3cbc194e0416984713b",
      "tree": "9cdda7357a09efb4acf0af981838a5ce5919701f",
      "parents": [
        "6aa47debba01f6a8e04e2082e05e31df39ef62af"
      ],
      "author": {
        "name": "Filip Wasil",
        "email": "f.wasil@samsung.com",
        "time": "Fri Jun 27 13:00:56 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Jun 28 16:19:11 2025 +0300"
      },
      "message": "riscv: Simplify the runtime check to always be present\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "6aa47debba01f6a8e04e2082e05e31df39ef62af",
      "tree": "8bc0c020310548486b885b118dcb2f8e1945a99a",
      "parents": [
        "3391bb98e39762d3f99414209d4399a68feaadb5"
      ],
      "author": {
        "name": "Filip Wasil",
        "email": "f.wasil@samsung.com",
        "time": "Thu Jun 26 13:32:49 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Jun 28 16:19:11 2025 +0300"
      },
      "message": "riscv: Do not overwrite `-march` when testing against SIMD availability\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "3391bb98e39762d3f99414209d4399a68feaadb5",
      "tree": "627076f4d656954b15df799e148f010032688b2c",
      "parents": [
        "21895b05ab22cf23b7b621252756e8419c5c5b87"
      ],
      "author": {
        "name": "Filip Wasil",
        "email": "f.wasil@samsung.com",
        "time": "Thu Jun 26 11:54:29 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Jun 28 16:19:11 2025 +0300"
      },
      "message": "riscv: Use C intrinsics\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "21895b05ab22cf23b7b621252756e8419c5c5b87",
      "tree": "b83a3862a668a81430424c2fd4c100982c92cb26",
      "parents": [
        "be81ebe1a45c2da3c5788485cd55408fe2e328df"
      ],
      "author": {
        "name": "Filip Wasil",
        "email": "f.wasil@samsung.com",
        "time": "Tue Jun 17 14:08:17 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Jun 18 14:43:36 2025 +0300"
      },
      "message": "riscv: Clearly separate the build flow for autotools and cmake\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "be81ebe1a45c2da3c5788485cd55408fe2e328df",
      "tree": "5f42e0c4e09d420b02021b5fad8eb6d8396afa54",
      "parents": [
        "edf46621f3de3e643a908c1e28c40e645eaa57a2"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Jun 17 11:41:32 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Jun 17 11:41:32 2025 +0300"
      },
      "message": "chore: Rerun `./autogen.sh --maintainer`\n"
    },
    {
      "commit": "edf46621f3de3e643a908c1e28c40e645eaa57a2",
      "tree": "a3ba19a63ba6cbd01cbb126a69b6a163fecadca1",
      "parents": [
        "5dc5937b30374091042e7d15dde1bfe95b5d72d1"
      ],
      "author": {
        "name": "Filip Wasil",
        "email": "f.wasil@samsung.com",
        "time": "Tue Jun 17 08:36:53 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Jun 17 11:40:57 2025 +0300"
      },
      "message": "riscv: Improve the RVV availability check\n\nIn some cases, the vector extension is not supported, although the\ncompiler allows the \"v\" flag in `-march` and includes `\u003criscv_vector\u003e`\nwithout raising an error.\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "5dc5937b30374091042e7d15dde1bfe95b5d72d1",
      "tree": "2514212bbfdcda14d65c3b84209f110545276b45",
      "parents": [
        "7084241c7527c6a345a7a425af46ca06edeb4996"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Jun 14 18:29:05 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Jun 14 18:35:46 2025 +0300"
      },
      "message": "chore: Update .gitignore\n\nThis is a cherry-pick of commit df3b9173277aae60b08a216dc23484f6ec171ef5\nfrom branch \u0027libpng18\u0027.\n"
    },
    {
      "commit": "7084241c7527c6a345a7a425af46ca06edeb4996",
      "tree": "a2fea5dcd0a49b618a059dbbefd9fb02328d47f4",
      "parents": [
        "640204280f8109d7165f95d2b177f89baf20b253"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Jun 14 17:13:02 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat Jun 14 17:13:02 2025 +0300"
      },
      "message": "Bump version to 1.6.50.git\n"
    },
    {
      "commit": "640204280f8109d7165f95d2b177f89baf20b253",
      "tree": "f2dcf8245c8c9ecb4acb56aa8429f6870b217ac0",
      "parents": [
        "740366c32b6b2d14e94fdb8cfcca7a4219be4cb6"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu Jun 12 20:05:46 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu Jun 12 20:05:46 2025 +0300"
      },
      "message": "Release libpng version 1.6.49\n"
    },
    {
      "commit": "740366c32b6b2d14e94fdb8cfcca7a4219be4cb6",
      "tree": "0fbf299f41cfe5e45d986a1523ca06bf60f3ad52",
      "parents": [
        "5d53dfd20c5e30fd558ae9d8ac14dddcc3749b07"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu Jun 12 19:58:06 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu Jun 12 19:58:06 2025 +0300"
      },
      "message": "doc: Update the png.5 man page to the latest PNG-3 draft\n"
    },
    {
      "commit": "5d53dfd20c5e30fd558ae9d8ac14dddcc3749b07",
      "tree": "bf7f0a671cb3e09d9c29cbc2a0cef0dd30f7d486",
      "parents": [
        "5b62726ced63030dfea9ffc9323eb5f25bd75099"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu Jun 12 18:46:04 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu Jun 12 18:46:04 2025 +0300"
      },
      "message": "chore: Rerun `./autogen.sh --maintainer`\n"
    },
    {
      "commit": "5b62726ced63030dfea9ffc9323eb5f25bd75099",
      "tree": "7530fd81f7f8cb541d0f23bb506c178e4c0d5664",
      "parents": [
        "a5830bfcb13e03b35c9c6dbb01a30601b896d9cc"
      ],
      "author": {
        "name": "Filip Wasil",
        "email": "f.wasil@samsung.com",
        "time": "Thu Jun 12 12:58:51 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu Jun 12 18:44:02 2025 +0300"
      },
      "message": "riscv: Fix autodetection of RVV support\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "a5830bfcb13e03b35c9c6dbb01a30601b896d9cc",
      "tree": "558f6b3ff07bd43ac802d927593125ce8be0907c",
      "parents": [
        "3bca02e274eb81d238099cc45a5b8fca4596a09c"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Jun 11 21:38:01 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Jun 11 21:38:01 2025 +0300"
      },
      "message": "build: Fix the detection of the math library in the CMake file\n\nThis is a fix of commit 5631b9b952e6940c67d4b48c00882e99229aa31b\n\"build: Implement various improvements to the CMake file\"\n"
    },
    {
      "commit": "3bca02e274eb81d238099cc45a5b8fca4596a09c",
      "tree": "489e2ed3f8169b9eb083d6bed72c7b01eb503647",
      "parents": [
        "197bbfe0d5955a3736cb3091cdc1c214b13341fe"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sun Jun 01 22:40:38 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sun Jun 01 22:40:38 2025 +0300"
      },
      "message": "examples: Refactor and reformat using clang-format\n\nAdd contrib/examples/.clang-format, tailored to fit the existing code\nas closely as possible. The end goal is to set up automatic formatting\nfor the entire libpng source tree. We\u0027re doing this experiment in this\nsubdirectory, for now.\n\nAlso make refactoring changes, as follows:\n\n * Rewrite the preprocessor checks `#if PNG_FOO_SUPPORTED` to stop\n   compilation immediately, with a descriptive `#error` about what\n   needs to be supported.\n\n * Rewrite and reflow comments, add braces and brackets, and make other\n   minor modifications that are suited for the clang-format\u0027ed code.\n"
    },
    {
      "commit": "197bbfe0d5955a3736cb3091cdc1c214b13341fe",
      "tree": "625b3f84560b11b8c7d11427d327d5e49522d1bd",
      "parents": [
        "0cc6436ef52341166182760dd4611e586d7cece1"
      ],
      "author": {
        "name": "Sanjay Jangid",
        "email": "136222049+sanjay20m@users.noreply.github.com",
        "time": "Sat May 31 16:41:42 2025 +0530"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Sat May 31 17:06:28 2025 +0300"
      },
      "message": "examples: Fix file descriptor leak in iccfrompng.c by closing input file\n\nReviewed-by: Cosmin Truta \u003cctruta@gmail.com\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "0cc6436ef52341166182760dd4611e586d7cece1",
      "tree": "94987dc758af5bdd22b80998c8713e816ed4b24a",
      "parents": [
        "f04c457a51e80b45550e8b6e2c4c7080145f6c92"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu May 29 22:55:00 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu May 29 22:55:00 2025 +0300"
      },
      "message": "build: Repair and reduce the CMake build dependency graph\n\nA funny thing happened while refactoring the function argument parsing\nin the `PNGGenConfig` module: the processing of dependencies inside\nthe CMake function `generate_copy` got fixed, thanks to an inadvertent\ntypo correction!\n\nGoing down the rabbit hole, we uncovered two issues:\n\n 1. A typo in `scripts/cmake/PNGGenConfig.cmake` caused a dependency\n    declaration to disappear, disrupting the graph. Fortunately, this\n    disruption was being mitigated by an additional set of (redundant)\n    symbolic target declarations that kept the CMake build going.\n\n 2. The exact string matching inside `scripts/cmake/gensrc.cmake.in`\n    imposed an artificial limitation, disallowing the use of absolute\n    file paths.\n\nThe typo correction in (1), and the use of regex matching instead of\nexact string matching in (2), allowed us to use absolute file paths\nin the main CMake file, consistently, thus allowing CMake to recognize\nthem as uniquely-identifiable nodes in the dependency graph. There\nshould be no further need to have extra symbolic targets for proper\nnode identification.\n\nIn the end, we shaved off the redundant symbolic target declarations,\nretaining only `png_genfiles` and `png_genprebuilt`.\n"
    },
    {
      "commit": "f04c457a51e80b45550e8b6e2c4c7080145f6c92",
      "tree": "016032f317e0814dc887ca193a2a604b05edf8ff",
      "parents": [
        "5631b9b952e6940c67d4b48c00882e99229aa31b"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu May 29 19:47:03 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu May 29 19:47:03 2025 +0300"
      },
      "message": "build: Remove the PNG_DEBUG option from CMake files and project files\n\nCounter-intuitively, defining the PNG_DEBUG macro as 1 (i.e. setting\nthe debug verbosity level to 1) does *not* cause any of the existing\ndebug traces to show up. This setting would have worked if we had trace\nstatements like `png_debug(0, message)`, but we don\u0027t have any.\n\nDebug traces do show up for verbosity levels from 2 to 5. The libpng\nmanual describes in detail how they are meant to be used.\n\nAccording to the history of the CMake file, as well as the history of\nother project files, PNG_DEBUG was never set to a numeric value larger\nthan 1. In other words, these debug settings inside these build files\nnever produced any output in any (unmodified) libpng version.\n\n(As for the configure build, PNG_DEBUG has no special treatment there.)\n\nConsidering the plethora of alternative methods to pass C preprocessor\noptions through our build files, scripts and projects onto libpng, we\u0027d\nrather discontinue PNG_DEBUG as a dedicated build option.\n"
    },
    {
      "commit": "5631b9b952e6940c67d4b48c00882e99229aa31b",
      "tree": "2c15bc010a1cb46a6487b71b25e8ec04d470ab4a",
      "parents": [
        "dc71f481ff32fa474e030ceb0b33def4fa9edc6a"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu May 29 18:28:16 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu May 29 18:28:16 2025 +0300"
      },
      "message": "build: Implement various improvements to the CMake file\n\nAllow the CMake build to work properly, even if file paths (in the\nsource directory, in the build directory, or in the install directory)\nmight contain whitespace characters.\n\nImprove the check for compilers that might use MSVC Runtime library\nheaders on Windows. We use POSIX-ish (\"deprecated\") functions, even\non Windows, and we want no spurious warnings.\n\nTidy up the CMake file: rearrange declarations, rewrite comments, etc.\n"
    },
    {
      "commit": "dc71f481ff32fa474e030ceb0b33def4fa9edc6a",
      "tree": "eb6ba9559d0029d7456ffe9f96c0e1020080c5a2",
      "parents": [
        "e2c15798161546a787da17dc40c0699e1872a162"
      ],
      "author": {
        "name": "Joost Nieuwenhuijse",
        "email": "joost@newhouse.nl",
        "time": "Wed Feb 26 22:17:08 2025 +0100"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed May 28 17:24:21 2025 +0300"
      },
      "message": "build: Fix apple-non-apple cross building\n\nWhen cross compiling for an apple platform on a non-apple platform\n(or the reverse), `if(APPLE)` in line 32 should refer to the target\nplatform. Without importing the `APPLE` variable, it refers to the\nhost platform.\n\nReviewed-by: John Bowler \u003cjbowler@acm.org\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "e2c15798161546a787da17dc40c0699e1872a162",
      "tree": "a6abd3e37f597cfa887ab253814351fa091fd24b",
      "parents": [
        "cff86202727772bca507d66561029c1af696c663"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed May 28 10:55:24 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed May 28 11:02:47 2025 +0300"
      },
      "message": "ci: Add action-editorconfig-checker to the GitHub Action for linting\n\nThe editorconfig-checker program is not installed by default in the OS\nused by GitHub Actions. Fortunately, the editorconfig-checker authors\nhave kindly provided the action-editorconfig-checker repository, which\nwe are now using.\n"
    },
    {
      "commit": "cff86202727772bca507d66561029c1af696c663",
      "tree": "2fba6ab6291ac0ca241377839aa870b7ff9988c3",
      "parents": [
        "5be32eb35c8be4b97b9046726bd316fa68459214"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue May 27 11:28:56 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue May 27 11:28:56 2025 +0300"
      },
      "message": "chore: Add riscv/.editorconfig and pacify editorconfig-checker\n\nAlso tidy up the new RISC-V code to comply with our coding style,\nand rearrange comments inside png.h to improve readability within\nthe configured editing limits.\n"
    },
    {
      "commit": "5be32eb35c8be4b97b9046726bd316fa68459214",
      "tree": "1f7c58b3928678333db69156a2d5b2f37066ec82",
      "parents": [
        "611bf1016c71fce5fe5ece0a2313ce982ab1d5bb"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon May 26 22:37:06 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon May 26 22:37:06 2025 +0300"
      },
      "message": "chore: Rerun `./autogen.sh --maintainer`\n"
    },
    {
      "commit": "611bf1016c71fce5fe5ece0a2313ce982ab1d5bb",
      "tree": "7f8f25a98aee79a1eca308f3a70852ad984994c7",
      "parents": [
        "0e37c0b477a9bb34f25f8e29170b76100146e8f3"
      ],
      "author": {
        "name": "Filip Wasil",
        "email": "f.wasil@samsung.com",
        "time": "Mon May 19 12:44:35 2025 +0200"
      },
      "committer": {
        "name": "Filip Wasil",
        "email": "f.wasil@samsung.com",
        "time": "Mon May 19 15:58:44 2025 +0200"
      },
      "message": "riscv: autotools update\n"
    },
    {
      "commit": "0e37c0b477a9bb34f25f8e29170b76100146e8f3",
      "tree": "a2a6861443e34dba8368117f7ad18c2961d8045d",
      "parents": [
        "710884346794c7807fc2f4a2d3a3ec0cb490b5c0"
      ],
      "author": {
        "name": "Filip Wasil",
        "email": "f.wasil@samsung.com",
        "time": "Wed May 14 19:30:39 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed May 14 22:35:47 2025 +0300"
      },
      "message": "riscv: Fix more comments\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "710884346794c7807fc2f4a2d3a3ec0cb490b5c0",
      "tree": "6285e028b73cc41688536c56f4c321db1b393906",
      "parents": [
        "2b0eb786560754b5af4b7a77fdfef9a24dc21e15"
      ],
      "author": {
        "name": "Filip Wasil",
        "email": "f.wasil@samsung.com",
        "time": "Thu May 08 15:39:32 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed May 14 10:24:58 2025 +0300"
      },
      "message": "riscv: Fix the run-time checking of the RVV availability\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "2b0eb786560754b5af4b7a77fdfef9a24dc21e15",
      "tree": "ca3f5cfaeeb04feb78a792c6e4567c2522f8279e",
      "parents": [
        "ffb8e8b26f2c18798863a173945cf4f292ab1f0a"
      ],
      "author": {
        "name": "Filip Wasil",
        "email": "f.wasil@samsung.com",
        "time": "Mon May 05 15:47:38 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed May 14 10:24:58 2025 +0300"
      },
      "message": "riscv: Fix autotools definitions and comments\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "ffb8e8b26f2c18798863a173945cf4f292ab1f0a",
      "tree": "c645f6c852d39c5216167dddbe87c7e62eeec7ff",
      "parents": [
        "cc5ee6b2137160c01aa53622c82b39a7de74a72a"
      ],
      "author": {
        "name": "Filip Wasil",
        "email": "f.wasil@samsung.com",
        "time": "Tue Mar 11 13:07:00 2025 +0100"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu May 01 17:44:00 2025 +0300"
      },
      "message": "Fix and improve the RISC-V Vector (RVV) implementation\n\nChanges include manually merged code from Manfred SCHLAEGL.\n\nCo-authored-by: Manfred SCHLAEGL \u003cmanfred.schlaegl@gmx.at\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "cc5ee6b2137160c01aa53622c82b39a7de74a72a",
      "tree": "18471ac34c47da694b712971131342f2050c9d0c",
      "parents": [
        "b4800bae3379f1abf82359703c28e727b5df4135"
      ],
      "author": {
        "name": "Dragoș Tiselice",
        "email": "dtiselice@google.com",
        "time": "Tue May 02 10:36:08 2023 +0000"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu May 01 17:44:00 2025 +0300"
      },
      "message": "Add optimized RISC-V Vector functions\n\nLargely based off of the ARM NEON implementation.\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "b4800bae3379f1abf82359703c28e727b5df4135",
      "tree": "122d8a1c2dc3a795285c4a33957e5111727aa8e9",
      "parents": [
        "ea127968204cc5d10f3fc9250c306b9e8cbd9b80"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu May 01 14:50:23 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu May 01 14:50:23 2025 +0300"
      },
      "message": "Bump version to 1.6.49.git\n"
    },
    {
      "commit": "ea127968204cc5d10f3fc9250c306b9e8cbd9b80",
      "tree": "0724283e7caef7e9f1ce75d51f41bf7ef99280f4",
      "parents": [
        "643dbda7d6eec78dd1b09a320cb5d56f7e8c41f8"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 30 16:51:46 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 30 16:51:46 2025 +0300"
      },
      "message": "Release libpng version 1.6.48\n"
    },
    {
      "commit": "643dbda7d6eec78dd1b09a320cb5d56f7e8c41f8",
      "tree": "976128f79272dbfb8c09642e57b308ecdcf86c60",
      "parents": [
        "34e3f7a65b107af9dabd7103f55d7c62070ee822"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 30 16:30:24 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 30 16:30:24 2025 +0300"
      },
      "message": "doc: Update the png.5 man page to the latest PNG-3 draft specification\n\nAlso update libpngpf.3 to explicitly state that the internal functions\nshould not be used by applications.\n"
    },
    {
      "commit": "34e3f7a65b107af9dabd7103f55d7c62070ee822",
      "tree": "b949d995de42bf1ab0401deb905612844cfd81ef",
      "parents": [
        "3e675310784e6f33d0fa1426403196f990cf2466"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 30 11:49:37 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Apr 30 11:49:37 2025 +0300"
      },
      "message": "Remove the config for Travis CI (and thank them for their support!)\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "3e675310784e6f33d0fa1426403196f990cf2466",
      "tree": "d23566a991ea5a9fbac7f22c82da5135dbd2edfa",
      "parents": [
        "23bdc7a6c4f5ea8c0ee15a13bb4176603c5c24c9"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Apr 29 17:30:30 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Apr 29 17:30:30 2025 +0300"
      },
      "message": "chore: Add a TODO note in .cmake-format.yaml; reformat CMakeLists.txt\n\nApply some (but not all) of the suggestions made by the cmake-format\nprogram. Meanwhile, the cmake-lint program is (still) happy.\n"
    },
    {
      "commit": "23bdc7a6c4f5ea8c0ee15a13bb4176603c5c24c9",
      "tree": "4cdf6a05cafd8f42754bbd6745b177e0fab9b979",
      "parents": [
        "69a3e5bfd10e3d6d8b093dbfe8777002755496d4"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Apr 28 20:44:53 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Apr 28 20:44:53 2025 +0300"
      },
      "message": "build: Add the CMake build option `PNG_LIBCONF_HEADER`\n\nRunning the pnglibconf scripts (script/*.awk) is not always possible.\nAn AWK interpreter is not always guaranteed to be available; and even\nif it is, there are limitations when making cross-platform libpng\nbuilds, especially when the differences between the host platform and\nthe target platform are significant. For example:\n * Building for the Windows (MinGW) target on a Unix development host;\n * Building for the iOS target on a macOS development host;\n * Building for the Android target on any development host.\n\nIn such scenarios, a preconfigured (i.e. prebuilt) pnglibconf.h file,\neither taken from the libpng source tree or provided by the user who\nwants to make a custom libpng build, becomes a necessity.\n\nIn this commit we introduce the build option `PNG_LIBCONF_HEADER` in\norder to address this specific use case.\n\nWe also specify a version range (3.14...4.0) for the minimum required\nCMake program, to future-proof the CMake build for just a little bit\nlonger.\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "69a3e5bfd10e3d6d8b093dbfe8777002755496d4",
      "tree": "dac8c3be8aa3062f8d161a6ffbcba84d0cd86d4f",
      "parents": [
        "c90491724ec55470761d7f477ba0c04b6e21f5b6"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Apr 25 16:19:30 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Apr 25 16:19:30 2025 +0300"
      },
      "message": "chore: Clean up the error directives\n\nMake the error directives uniformly consistent with one another.\nRemove surrounding quotes and trailing punctuation, and rephrase\nsome of the error messages and some of their associated comments\nfor either brevity or clarity.\n"
    },
    {
      "commit": "c90491724ec55470761d7f477ba0c04b6e21f5b6",
      "tree": "e5da5556382b9d591ee669355975aba1004404dc",
      "parents": [
        "98448e372d717206c9f5a2a39d42e7417e6889cb"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Apr 25 15:35:11 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Apr 25 15:35:11 2025 +0300"
      },
      "message": "Discourage the inclusion of private headers outside libpng\n\nAdd checks inside the private png*.h header files, in order to reduce\nunintentional occurences of application backdoors.\n\nSuch backdoors might occur, for example, when we make changes to the\ninternal data structures that might somehow \"leak\" from the libpng\ncode into the user code. The applications that use the libpng API must\npretend not to know that these headers exist at all.\n\nCo-authored-by: John Bowler \u003cjbowler@acm.org\u003e\nSigned-off-by: John Bowler \u003cjbowler@acm.org\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "98448e372d717206c9f5a2a39d42e7417e6889cb",
      "tree": "eada8bbae900e92fec24a37a60c7582281a3efb9",
      "parents": [
        "f2b0f5fe1c7db69d66723e7352b056bcfc0f0c2c"
      ],
      "author": {
        "name": "John Bowler",
        "email": "jbowler@acm.org",
        "time": "Sat Apr 19 08:59:35 2025 -0700"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Apr 22 19:35:01 2025 +0300"
      },
      "message": "Remove unused function from write-only configurations\n\n`png_icc_profile_error` is no longer used when writing iCCP chunks,\ntherefore it can be compiled out when the reading is disabled.\n\nThis change includes two `minconfig` files to test read-only and\nwrite-only \"full\" configurations, to supplement the existing tests\nfor \"minimal\" configurations.\n\nSigned-off-by: John Bowler \u003cjbowler@acm.org\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "f2b0f5fe1c7db69d66723e7352b056bcfc0f0c2c",
      "tree": "afce6d83677009e4ed0ca3606300628e41277bd1",
      "parents": [
        "7101a5569f432b9822a218a3ac1e06efe0b11508"
      ],
      "author": {
        "name": "John Bowler",
        "email": "jbowler@acm.org",
        "time": "Sat Apr 19 08:58:09 2025 -0700"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Apr 22 18:08:39 2025 +0300"
      },
      "message": "fix(mDCv): Correct the floating-point setter `png_set_mDCv`\n\nIn the floating-point API function `png_set_mDCv` we incorrectly\ndivided by two the chromaticity values before passing them on to\n`png_set_mDCv_fixed`.\n\nReported-by: Mohit Bakshi \u003cmohitbakshi2205@gmail.com\u003e\nSigned-off-by: John Bowler \u003cjbowler@acm.org\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "7101a5569f432b9822a218a3ac1e06efe0b11508",
      "tree": "d4359683b3592c6a04dc80a1aa0adc364d36a70e",
      "parents": [
        "e046c0dc3b3a036b4c304053ef0d7a92145fad0c"
      ],
      "author": {
        "name": "Chris Blume",
        "email": "ProgramMax@gmail.com",
        "time": "Tue Apr 08 08:08:20 2025 -0400"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Apr 22 18:04:46 2025 +0300"
      },
      "message": "Correct mistake in example.c\n"
    },
    {
      "commit": "e046c0dc3b3a036b4c304053ef0d7a92145fad0c",
      "tree": "df84295d90720d7dcbd1ce30dec5524cd26ad6ce",
      "parents": [
        "34005e3d3d373c0c36898cc55eae48a79c8238a1"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Apr 22 16:39:01 2025 +0300"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Apr 22 16:39:01 2025 +0300"
      },
      "message": "Revert \"Recover from errors in ancillary chunks\"\n\nThis reverts commit 34005e3d3d373c0c36898cc55eae48a79c8238a1.\n\nAlthough I agreed with Lucas Chollet initially, I finally understood\nthe objection brought forth by John Bowler: \"[...] it\u0027s not an\nancillary chunk type if it\u0027s not a chunk type in the first place.\"\n\nI feel that more deliberation is needed on what a robust PNG decoder\nshould do when it stumbles upon a chunk type that fails to meet its\nbasic requirements. A clarifying recommendation for decoders may or\nmay not need to be stipulated in the PNG specification as well.\n\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "34005e3d3d373c0c36898cc55eae48a79c8238a1",
      "tree": "696553c3b083081a5d2cb59a8a71a4b57e1c9cfe",
      "parents": [
        "44f97f08d729fcc77ea5d08e02cd538523dd7157"
      ],
      "author": {
        "name": "Lucas CHOLLET",
        "email": "lucas.chollet@free.fr",
        "time": "Mon Mar 03 15:06:40 2025 -0700"
      },
      "committer": {
        "name": "Lucas CHOLLET",
        "email": "lucas.chollet@free.fr",
        "time": "Tue Mar 04 15:13:19 2025 -0700"
      },
      "message": "Recover from errors in ancillary chunks\n\nAs per the third edition of the spec, decoders should recover from\nerrors in ancillary chunks.\n\nIn section 13.1 Error handling [1]:\n\u003e Anomalous situations other than syntax errors shall be treated as\n\u003e follows:\n\u003e  1. Encountering an unknown ancillary chunk is never an error. The\n\u003e     chunk can simply be ignored.\n\nMore specifically, in this commit, if a chunk that is detected as\nancillary, does not pass the `check_chunk_name()` function, only a\n_benign_ is issued, instead of an error.\n\nThis allows libpng to fully decode images like [2] and [3]. It has been\ntested by passing them to both pngtest and Gnome\u0027s image viewer. Note\nthat invalid-unknown-ancillary-after-IDAT.png could already be displayed\nbut not fully decoded.\n\n[1] https://w3c.github.io/png/#13Decoders.Errors\n[2] https://github.com/web-platform-tests/wpt/blob/master/png/errors/support/invalid-unknown-ancillary.png\n[3] https://github.com/web-platform-tests/wpt/blob/master/png/errors/support/invalid-unknown-ancillary-after-IDAT.png\n"
    },
    {
      "commit": "44f97f08d729fcc77ea5d08e02cd538523dd7157",
      "tree": "df84295d90720d7dcbd1ce30dec5524cd26ad6ce",
      "parents": [
        "044536de92d4033b9470b34758b24c4d50a06cf1"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Feb 21 15:34:09 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Feb 26 19:46:08 2025 +0200"
      },
      "message": "[libpng18] chore: Clean up the `FILE *` formulations in code and in documentation\n\nWe should use `FILE *` instead of `FILE*` or `(FILE*)`, consistently,\nas we should for all other pointer types. Moreover, when we refer to\nstandard stdio file objects in comments and in documentation, we should\nuse the term \"FILE objects\" consistently.\n\nLastly, we clarify in a comment in example.c that `PNG_STDIO_SUPPORTED`\nis true only when the stdio support is both available in the system and\naccessible in the user\u0027s libpng build.\n\nThis is a cherry-pick of commit c63c5463903014c904b540216c2784023fb8c1c8\nfrom branch \u0027libpng18\u0027.\n\nReviewed-by: John Bowler \u003cjbowler@acm.org\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "044536de92d4033b9470b34758b24c4d50a06cf1",
      "tree": "ca5429143b0316b96dd01165c28c09ff42ed5680",
      "parents": [
        "738f5e743ccc59de62a7b789460636f6f9d12c93"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Fri Feb 21 11:31:13 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Feb 26 19:42:28 2025 +0200"
      },
      "message": "[libpng18] chore: Clean up remnants of the long-discontinued Win16 support\n\nRemove #ifdef sections and other workarounds for old Windows compilers\nthat lacked proper support for Win32, including, especially, support\nfor the Win32 stdio API.\n\nThis is a cherry-pick of commit e936211760ddf0ed4a4711ea897b59395dfd206e\nfrom branch \u0027libpng18\u0027.\n\nReviewed-by: John Bowler \u003cjbowler@acm.org\u003e\nSigned-off-by: Cosmin Truta \u003cctruta@gmail.com\u003e\n"
    },
    {
      "commit": "738f5e743ccc59de62a7b789460636f6f9d12c93",
      "tree": "4fbcc9cb02118db91d6581ad53639a5c148effb0",
      "parents": [
        "f20e66aa93406c5780dbb2039e585426c0cce9d0"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu Feb 20 11:59:16 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Thu Feb 20 11:59:16 2025 +0200"
      },
      "message": "ci: Add more checks to ci_verify_version.sh; refactor\n\nIn addition to png.h, configure.ac and CMakeLists.txt, the script\nci_verify_version.sh is now able to verify libpng-config-head.in also.\n\nFor the benefit of readability, the old script ci_shellify.sh has been\nsplit into smaller, independent scriptlets: libexec/ci_shellify_*.sh.\n\nThe linting script ci_lint.sh has been updated as needed.\n"
    },
    {
      "commit": "f20e66aa93406c5780dbb2039e585426c0cce9d0",
      "tree": "9e192d1ca9b8283400eac0955fb049d4361f0823",
      "parents": [
        "5d09501462cb14c627483119608a2ecaf4da5459"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Feb 19 13:15:14 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Feb 19 13:15:14 2025 +0200"
      },
      "message": "chore: Apply some of the missed updates to the copyright year\n"
    },
    {
      "commit": "5d09501462cb14c627483119608a2ecaf4da5459",
      "tree": "574b8ffee4de1d841cddf61b57aa322c486aa042",
      "parents": [
        "872555f4ba910252783af1507f9e7fe1653be252"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Feb 19 13:07:40 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Wed Feb 19 13:07:40 2025 +0200"
      },
      "message": "Bump version to 1.6.48.git\n"
    },
    {
      "commit": "872555f4ba910252783af1507f9e7fe1653be252",
      "tree": "a5611ed79a18f8f4b9f2f21724499172d92896b0",
      "parents": [
        "bb7e922914ccacadcc745970ed1fc1e38e603d19"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Feb 18 11:18:30 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Tue Feb 18 11:18:30 2025 +0200"
      },
      "message": "Release libpng version 1.6.47\n"
    },
    {
      "commit": "bb7e922914ccacadcc745970ed1fc1e38e603d19",
      "tree": "abb9bee17488c4c0c6b496095d7120f8556a8b55",
      "parents": [
        "b20e6fb31479868f1d5f5cd268d4776767016941"
      ],
      "author": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Feb 17 21:13:32 2025 +0200"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Feb 17 21:13:32 2025 +0200"
      },
      "message": "ci: Introduce the `CI_NO_BUILD` flag\n\nFor testing purposes (e.g. wanting to see if \"make distclean\" works\ncorrectly with and without building), as well as development purposes\n(e.g. wanting to inspect the artifacts produced in the configuration\nstage), add `CI_NO_BUILD` to the family of contrarians.\n"
    },
    {
      "commit": "b20e6fb31479868f1d5f5cd268d4776767016941",
      "tree": "b62460aff1f0fffa1979c2169d80168bb5460eb6",
      "parents": [
        "5356b941692393ef1c9ca7e3204a9b0ced14f746"
      ],
      "author": {
        "name": "John Bowler",
        "email": "jbowler@acm.org",
        "time": "Thu Feb 13 13:00:49 2025 -0800"
      },
      "committer": {
        "name": "Cosmin Truta",
        "email": "ctruta@gmail.com",
        "time": "Mon Feb 17 11:38:28 2025 +0200"
      },
      "message": "pngimage: clean up on user/internal errors\n\npngimage: The code simply exited with a return code of 99 in the event\nof a user error including giving pngimage invalid PNG files and an\ninternal error.  It now attempts to clean up the state before doing so,\nmatching the normal behaviour.\n\npngimage: Non-ISO use of setjmp(3) corrected.\n\npngerror.c: Failure to call png_image_free on a false result from a\npng_safe_execute function call fixed.  This was a regression caused by\nthe \u0027volatile\u0027 clean-up.  Not normally detectable because png_image_free\nwill often be called by the application.\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"
    }
  ],
  "next": "5356b941692393ef1c9ca7e3204a9b0ced14f746"
}
