)]}'
{
  "log": [
    {
      "commit": "16d4a7c21ea79664f3670aafc17958c10fcab9f9",
      "tree": "01aca53eed409dc535e8aa3b9550a2809fa6ab82",
      "parents": [
        "91586dc6742ab335682235120363f6e126eea5e2"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue Sep 22 09:07:57 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue Sep 22 09:07:57 2026 +0200"
      },
      "message": "Add missing cmake files to the EXTRA_DIST\n\nThese files are needed for the cmake build\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/work_items/1160\n"
    },
    {
      "commit": "91586dc6742ab335682235120363f6e126eea5e2",
      "tree": "4ad30f4836d54465a5b6825650a169376bb94a69",
      "parents": [
        "31094e5d0f65a528965e8c32a488e5a7f36118ca"
      ],
      "author": {
        "name": "Kaixuan Li",
        "email": "kaixuan.li@ntu.edu.sg",
        "time": "Wed Sep 09 15:55:36 2026 +0800"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Thu Sep 17 05:57:33 2026 +0000"
      },
      "message": "schemas: Pass the validation context to xmlSchemaSAXHandleReference\n\nreferenceSplit guards on ctxt-\u003ectxt but passes ctxt-\u003euser_data, which is\nthe application\u0027s own pointer. xmlSchemaSAXHandleReference casts its\nargument to xmlSchemaValidCtxt and reads depth and skipDepth from it,\n172 and 304 bytes in.\n\nThe five other handoffs in the same file all pass ctxt-\u003ectxt, and\ncdataBlockSplit just above is the same shape done correctly: the user\nhandler gets ctxt-\u003euser_data, the schema handler gets ctxt-\u003ectxt.\n\nThis does not manifest in an optimized build. xmlSchemaSAXHandleReference\nhas no side effects, so the loads feed only branches that return and the\ncompiler removes the body; at -O1 the call is gone from referenceSplit\nentirely. At -O0 the read is real: with an application SAX handler whose\nuser_data is smaller than the offset of depth, parsing a document with an\nentity reference under xmlSchemaSAXPlug gives a heap-buffer-overflow at\nxmlschemas.c:26819, from referenceSplit at :28064.\n\nAlso drop ATTRIBUTE_UNUSED from ctx, which the function dereferences.\nname really is unused, so it keeps the attribute.\n"
    },
    {
      "commit": "31094e5d0f65a528965e8c32a488e5a7f36118ca",
      "tree": "9e48d2fba78cb8c526d3ce11ea5594f111663e95",
      "parents": [
        "81c05bafd4d7df6da91ccf8eab8f539cc78421d8"
      ],
      "author": {
        "name": "Hieu Le Minh",
        "email": "leminhhieu.opensource@gmail.com",
        "time": "Tue Sep 08 18:46:02 2026 +0700"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Wed Sep 09 12:45:27 2026 +0000"
      },
      "message": "regexp: Only set error on first failure\n\nProblematic regular expressions may fail early during compilation.\nIn that case, only log the error once to avoid misleading messages.\n"
    },
    {
      "commit": "81c05bafd4d7df6da91ccf8eab8f539cc78421d8",
      "tree": "6336308d5465db29d090498527e7f527365d796b",
      "parents": [
        "c63248941708bc1d2e3a4292954593312212f6ca"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Fri Sep 04 19:40:25 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Fri Sep 04 19:40:25 2026 +0200"
      },
      "message": "c14n: Fix xmlC14NNewCtx doc\n\nRemove trailing backtick in xmlC14NNewCtx doc, this change should fix\nthe problem reported\n\n```\nc14n.c:2171: error: Reached end of file while still searching closing\n\u0027`\u0027 of a verbatim block starting at line 2062 (warning treated as\nerror, aborting now)\n```\n\nSee https://gitlab.gnome.org/GNOME/libxml2/-/commit/e549622bc5b93631c9ee00d94afec533ecd467c7#note_2833189\n"
    },
    {
      "commit": "c63248941708bc1d2e3a4292954593312212f6ca",
      "tree": "6c808e3e654cd047b675a2be9e01fc7c0f906750",
      "parents": [
        "d67a71d9dede63e4d54578b5a5a034bfec4ee4fe"
      ],
      "author": {
        "name": "yirou_yang",
        "email": "yirouyang0622@gmail.com",
        "time": "Tue Aug 11 05:37:03 2026 +0000"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Tue Aug 11 05:37:03 2026 +0000"
      },
      "message": "catalog: Fix NULL deref for nextCatalog without \u0027catalog\u0027 attribute\n"
    },
    {
      "commit": "d67a71d9dede63e4d54578b5a5a034bfec4ee4fe",
      "tree": "f461dd859c65e081343a73ece28ce6a0add8d059",
      "parents": [
        "ddcb79dc9934fd8a26263f6368c4eb7aa43f6d49"
      ],
      "author": {
        "name": "Brett Kail",
        "email": "brett.kail@workiva.com",
        "time": "Fri Aug 07 10:06:52 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Fri Aug 07 10:06:52 2026 +0200"
      },
      "message": "Handle whitespace for date/time/duration types\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/work_items/1140\nSee https://github.com/Arelle/Arelle/issues/2441#issuecomment-4806172135\n"
    },
    {
      "commit": "ddcb79dc9934fd8a26263f6368c4eb7aa43f6d49",
      "tree": "447af9e996ba3895109f49db4fb9692763cff6cc",
      "parents": [
        "c8eaf2236ff16667970f96f3f01e119c99d38ab2"
      ],
      "author": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jul 20 02:27:48 2026 +0200"
      },
      "committer": {
        "name": "Nick Wellnhofer",
        "email": "wellnhofer@aevum.de",
        "time": "Mon Jul 20 02:27:48 2026 +0200"
      },
      "message": "parser: Fix memory leak in xmlCtxtSetSaxHandler\n"
    },
    {
      "commit": "c8eaf2236ff16667970f96f3f01e119c99d38ab2",
      "tree": "24b73b5f58561972e81eafd927d1f34c1d487a7c",
      "parents": [
        "87c77060fbd6168b7f338e0f3aed58f12e92ee72"
      ],
      "author": {
        "name": "zhuofeng",
        "email": "zhuofeng85@gmail.com",
        "time": "Tue May 26 16:50:17 2026 +0800"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Thu Jul 02 08:31:29 2026 +0000"
      },
      "message": "parser: fix division-by-zero when maxAmpl is set to 0\n\nReject maxAmpl \u003d\u003d 0 in xmlCtxtSetMaxAmplification and add a safety\ncheck before the division in xmlParserEntityCheck to prevent SIGFPE.\n"
    },
    {
      "commit": "87c77060fbd6168b7f338e0f3aed58f12e92ee72",
      "tree": "146f1457f640f9f12a785bb1744c2c7eed4182e9",
      "parents": [
        "a3c31b5392d57fb89b7547dee52becd9d36de919"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Wed Jun 10 09:34:08 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Jun 29 05:52:48 2026 +0000"
      },
      "message": "parser: Move xmlAttrNormalizeSpace to private/parser.h\n\nMove static functions xmlAttrNormalize and xmlAttrNormalizeSpace to\nprivate/parser.h to make it reusable between parser and tree.\n"
    },
    {
      "commit": "a3c31b5392d57fb89b7547dee52becd9d36de919",
      "tree": "d7fb333c09d75859b0985d89289da943116254df",
      "parents": [
        "d60b0f747c9d5a892a89f18d061f448f0e16230e"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue May 12 13:52:12 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Jun 29 05:52:48 2026 +0000"
      },
      "message": "Normalize entity values in attr in xmlNodeGetContent\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/work_items/1118\n"
    },
    {
      "commit": "d60b0f747c9d5a892a89f18d061f448f0e16230e",
      "tree": "13a8de1b81951ae59c6a03f4cd526a8417fcbc87",
      "parents": [
        "e989c66f946dd73c4762660582e4ae8e8c66434c"
      ],
      "author": {
        "name": "Benjamin Gilbert",
        "email": "bgilbert@backtick.net",
        "time": "Sun Jun 28 19:59:27 2026 -0700"
      },
      "committer": {
        "name": "Benjamin Gilbert",
        "email": "bgilbert@backtick.net",
        "time": "Sun Jun 28 20:06:32 2026 -0700"
      },
      "message": "meson: Build examples when tests are built\n\nMatch the behavior of the Autotools build system.  There isn\u0027t a way to\nrequest this from Meson directly, so add a trivial test that depends on\nall examples.\n"
    },
    {
      "commit": "e989c66f946dd73c4762660582e4ae8e8c66434c",
      "tree": "7c8d29995f6df1b08f0c284e43c1882738666eb7",
      "parents": [
        "13a3df99ffe2521a903f270abb33aa7092b34147"
      ],
      "author": {
        "name": "Benjamin Gilbert",
        "email": "bgilbert@backtick.net",
        "time": "Sun Jun 28 19:48:02 2026 -0700"
      },
      "committer": {
        "name": "Benjamin Gilbert",
        "email": "bgilbert@backtick.net",
        "time": "Sun Jun 28 20:06:32 2026 -0700"
      },
      "message": "meson: Defer building tests until they\u0027re run\n\nMeson \u003e\u003d 1.7 respects build_by_default for test executables.  Match the\nAutotools build system and don\u0027t build tests until they\u0027re run.\n"
    },
    {
      "commit": "13a3df99ffe2521a903f270abb33aa7092b34147",
      "tree": "fa505076279aa9f797c042d616451b6ef15f518c",
      "parents": [
        "84e453fc1732303097d9ea10e3ec0db1eccfd25f"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue Jun 09 13:15:19 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue Jun 09 13:45:16 2026 +0200"
      },
      "message": "HTMLparser: fix build in ubuntu:26.04 with gcc\n"
    },
    {
      "commit": "84e453fc1732303097d9ea10e3ec0db1eccfd25f",
      "tree": "d7bf1acdb4aa13f0d232be2a89f928863a0a303c",
      "parents": [
        "962bd10d01151d29190567e2d15ccf641be55063"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue Jun 09 12:52:20 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue Jun 09 13:45:16 2026 +0200"
      },
      "message": "CI: Update Dockerfile base from 24.04 to 26.04\n"
    },
    {
      "commit": "962bd10d01151d29190567e2d15ccf641be55063",
      "tree": "4a77570178f62b057a49eacb6f87193c8ff4865a",
      "parents": [
        "d28f35a26ed6d7915cb2f37f443b8bf77315aacc"
      ],
      "author": {
        "name": "Mohammad Seet",
        "email": "mohammadmseet@gmail.com",
        "time": "Tue May 26 22:06:25 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Jun 01 05:44:33 2026 +0000"
      },
      "message": "xmlGrowArray: guard against NULL capacity pointer\n"
    },
    {
      "commit": "d28f35a26ed6d7915cb2f37f443b8bf77315aacc",
      "tree": "dbfb3630c2c38fd291db9b9b4c43c253989bcf46",
      "parents": [
        "7e64e231e309db978c8c5e73ab3009ef35ec676a"
      ],
      "author": {
        "name": "mohammadmseet-hue",
        "email": "mohammadmseet@gmail.com",
        "time": "Fri Apr 24 00:18:42 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Jun 01 05:44:33 2026 +0000"
      },
      "message": "review: address MR !409 feedback\n\n- memory.h: remove duplicate xmlGrowArray doc comment; full doc lives\n  in xmlmemory.c where the function is defined.\n- relaxng.c (xmlRelaxNGGetElements): migrate the last in-function\n  xmlGrowCapacity+xmlRealloc site to xmlGrowArray() for consistency\n  with the other call sites. Drop the unnecessary \"+1\" in the malloc\n  and change the growth trigger from \"max \u003c\u003d len\" to \"max \u003c\u003d len + 1\"\n  so xmlGrowArray\u0027s 50% growth absorbs the NULL-terminator slack.\n  The invariant max \u003e\u003d len + 2 before each write keeps both\n  \"ret[len++] \u003d cur\" and \"ret[len] \u003d NULL\" in range.\n"
    },
    {
      "commit": "7e64e231e309db978c8c5e73ab3009ef35ec676a",
      "tree": "914b5c90822abb211fe3087674bd999b41dcb625",
      "parents": [
        "7e55914c36cb110dca6de6867bbcda3bed8cdbce"
      ],
      "author": {
        "name": "mohammadmseet-hue",
        "email": "mohammadmseet@gmail.com",
        "time": "Thu Apr 16 03:00:42 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Jun 01 05:44:33 2026 +0000"
      },
      "message": "schematron: use xmlGrowArray for overflow-checked array growth\n\nReplace 2 unsafe array growth sites with xmlGrowArray(). The old code\nused unchecked max * 4 * sizeof triple multiplication before xmlRealloc\nwhich can overflow, producing undersized allocations followed by heap\nbuffer overflows. Both sites also used self-assignment, losing the old\npointer on allocation failure.\n"
    },
    {
      "commit": "7e55914c36cb110dca6de6867bbcda3bed8cdbce",
      "tree": "174076adc55774fe56ccd6f627297c9ed413ebdf",
      "parents": [
        "6afea87220588843c975928fee3bf4371631d8b5"
      ],
      "author": {
        "name": "mohammadmseet-hue",
        "email": "mohammadmseet@gmail.com",
        "time": "Thu Apr 16 03:00:11 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Jun 01 05:44:33 2026 +0000"
      },
      "message": "relaxng: use xmlGrowArray for overflow-checked array growth\n\nReplace 9 unsafe array growth sites with xmlGrowArray() which provides\noverflow-checked capacity growth and safe reallocation. The old code\nused unchecked int * 2 multiplication before xmlRealloc which can\noverflow on 32-bit systems, and several sites updated the capacity\ncounter before allocation and used self-assignment, causing state\ncorruption and memory leaks on allocation failure.\n\nOne site (xmlRelaxNGGetElements) uses xmlGrowCapacity directly because\nit needs a +1 sentinel element in the allocation.\n"
    },
    {
      "commit": "6afea87220588843c975928fee3bf4371631d8b5",
      "tree": "06ae266bd0602c5147ffb4f6a0cf597989cd5754",
      "parents": [
        "b30494c58492274f885b53d1e7211c63ee11e0ad"
      ],
      "author": {
        "name": "mohammadmseet-hue",
        "email": "mohammadmseet@gmail.com",
        "time": "Thu Apr 16 02:58:27 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Jun 01 05:44:33 2026 +0000"
      },
      "message": "memory: add xmlGrowArray helper for overflow-checked array reallocation\n\nAdd a private helper function that combines xmlGrowCapacity() with\nxmlRealloc() into a single call. This reduces boilerplate at array\ngrowth sites where the same pattern of capacity check + realloc +\npointer/capacity update is repeated.\n\nOn success, updates the capacity and returns the new pointer.\nOn failure, returns NULL with the original pointer and capacity\npreserved, avoiding the common self-assignment bug where the old\npointer is lost.\n"
    },
    {
      "commit": "b30494c58492274f885b53d1e7211c63ee11e0ad",
      "tree": "37a479a77aaf4738f1c8d309331578eca27450e5",
      "parents": [
        "32387d3f342322724f0a85f8482eaa30d4f35e2e"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Fri May 29 09:19:59 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Fri May 29 09:19:59 2026 +0200"
      },
      "message": "Add Strict No LLM / No AI policy\n\nAfter some time thinking about it, I\u0027ve decided to ban LLM usage\ncompletely.\n\nI\u0027ve just copied the policy from zig project directly as I consider it\nclear and simple.\n\nThere are other projects with similar policy, as reference:\n- zig: https://ziglang.org/code-of-conduct/#strict-no-llm-no-ai-policy\n- libadwaita: https://gitlab.gnome.org/GNOME/libadwaita/-/blob/main/CONTRIBUTING.md\n- servo: https://book.servo.org/contributing/getting-started.html#ai-contributions\n- man-pages: https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING.d/ai\n\nMore information for reference about this topic:\nhttps://linguacelta.com/blog/2026/05/LLMs.html\n"
    },
    {
      "commit": "32387d3f342322724f0a85f8482eaa30d4f35e2e",
      "tree": "4b6d83597874a0ef4832a8022cc2b59873b78c05",
      "parents": [
        "174201f747da93167354287a7599d0b385552599"
      ],
      "author": {
        "name": "zhuofeng",
        "email": "zhuofeng85@gmail.com",
        "time": "Tue May 26 17:07:35 2026 +0800"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Tue May 26 10:09:57 2026 +0000"
      },
      "message": "xmllint: Add NULL checks for xmlStrdup/xmlStrcat in resource loader\n"
    },
    {
      "commit": "174201f747da93167354287a7599d0b385552599",
      "tree": "c46bfe0671078c076f917aa8fdb4dd1c617c4057",
      "parents": [
        "b61737679e1f5ce2aaf19d075784a40bd5f4938a"
      ],
      "author": {
        "name": "rootvector2",
        "email": "dxbnaveed.k@gmail.com",
        "time": "Sat May 16 02:44:36 2026 +0530"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon May 25 08:12:27 2026 +0000"
      },
      "message": "c14n: Check xmlGrowCapacity return in xmlC14NVisibleNsStackAdd\n\nCommit 509d49812 (\"c14n: Check reallocations for overflow\") converted\nthe namespace-stack growth in xmlC14NVisibleNsStackAdd to xmlGrowCapacity\nbut omitted the `newSize \u003c 0` check that every other xmlGrowCapacity\ncaller in the tree uses. When xmlGrowCapacity returns -1 (capacity\nreached XML_MAX_ITEMS or would overflow size_t), the subsequent\nxmlRealloc is invoked with a sign-extended (size_t)-1 multiplied by\nthe element size, falling back to the realloc OOM path instead of a\nclean -1 return.\n\nAdd the check to match the convention used at the 59 other call sites\nin the tree.\n"
    },
    {
      "commit": "b61737679e1f5ce2aaf19d075784a40bd5f4938a",
      "tree": "34b0efd59db5034150f75f052b6ca83fa8526ec0",
      "parents": [
        "47f416a5829356f55efa6f48a7e668c8de359e5a"
      ],
      "author": {
        "name": "zhuofeng",
        "email": "zhuofeng85@gmail.com",
        "time": "Mon May 25 10:43:30 2026 +0800"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon May 25 07:52:20 2026 +0000"
      },
      "message": "xmllint: Reject negative numbers in parseInteger\n\nstrtoul wraps negative values to unsigned, which on 32-bit\nunsigned long platforms passes all range checks and silently\ndisables --max-ampl. Check for leading \u0027-\u0027 followed by a digit.\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/work_items/1128\n"
    },
    {
      "commit": "47f416a5829356f55efa6f48a7e668c8de359e5a",
      "tree": "1008c4bdc5bc294405f240d724c5c53988daf234",
      "parents": [
        "d3352554e4c1f052b914cda7b415d06b7eab5dfa"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Mon May 25 09:49:29 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Mon May 25 09:49:29 2026 +0200"
      },
      "message": "CI: Remove external fuzzing\n\nThis was added as a new job with more llm generated fuzzing tests. I\nthink we can remove this from our CI, because at the end we are running\nuncontrolled external code wasting CPU.\n"
    },
    {
      "commit": "d3352554e4c1f052b914cda7b415d06b7eab5dfa",
      "tree": "fabe40c3aa58458f1f87cc9d4bc22a61817c818b",
      "parents": [
        "6be0acd2afb3f55af3c721e1e35ac6675df3057a"
      ],
      "author": {
        "name": "zhuofeng",
        "email": "zhuofeng85@gmail.com",
        "time": "Sat May 23 06:51:49 2026 +0000"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon May 25 07:36:49 2026 +0000"
      },
      "message": "xmllint: Fix the `--maxmem` command option\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/work_items/1127\n"
    },
    {
      "commit": "6be0acd2afb3f55af3c721e1e35ac6675df3057a",
      "tree": "a36e9c53cac328484dea6dd5f4befcf0a08ac0e5",
      "parents": [
        "c2e233fc1b341685fc99621b2768b503f777a72e"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Mon May 25 09:28:27 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Mon May 25 09:28:27 2026 +0200"
      },
      "message": "xmlAddChild: unlink node before free for text nodes\n\nThis patch adds the missing call to xmlUnlinkNodeInternal when adding a\nchild to a text node.\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/work_items/1129\n"
    },
    {
      "commit": "c2e233fc1b341685fc99621b2768b503f777a72e",
      "tree": "689555a8ea5a97d71573b8a7f922b0661f1443ca",
      "parents": [
        "52405925b818733aa42eb646e81b2a255440fb1e"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Fri May 22 12:21:20 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Fri May 22 12:21:20 2026 +0200"
      },
      "message": "xmlcatalog: overflow check for large --shell commands\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/work_items/1124\n"
    },
    {
      "commit": "52405925b818733aa42eb646e81b2a255440fb1e",
      "tree": "c72cda4f6071279d7de3141da5e9c817b2abb206",
      "parents": [
        "26dfab2f8fd36fc3aba8c25c7c358530d9712c7a"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Fri May 22 09:12:05 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Fri May 22 09:47:54 2026 +0200"
      },
      "message": "catalog: Make sure to reset catalog resolve cache\n\nThis patch also adds a couple of static functions for the first call to\nxmlCatalogListXMLResolve and xmlCatalogListXMLResolveURI to wrap these\ncalls with the xmlResetCatalogResolveCache.\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/work_items/1125\n"
    },
    {
      "commit": "26dfab2f8fd36fc3aba8c25c7c358530d9712c7a",
      "tree": "9cd5bd666232b5f589175268714d105d46d44da3",
      "parents": [
        "c71154dad39f65ead334bd9aec4092392b1c63a7"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Fri May 22 07:56:38 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Fri May 22 07:56:38 2026 +0200"
      },
      "message": "parser: Fix double free in xmlIOParseDTD\n\nThe xmlNewIOInputStream frees the `input` buffer if something fails, so\nthere\u0027s no need to free when the return is NULL.\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/work_items/1126\n"
    },
    {
      "commit": "c71154dad39f65ead334bd9aec4092392b1c63a7",
      "tree": "1990ece91a9e122cffbe99777187b156ba5047cf",
      "parents": [
        "b279fee61a429fe78d0526d7edd999906ce76a23"
      ],
      "author": {
        "name": "zhuofeng",
        "email": "zhuofeng85@gmail.com",
        "time": "Wed May 20 07:05:57 2026 +0000"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Wed May 20 10:18:56 2026 +0200"
      },
      "message": "buf: Add check of return values in xmlBufferCreateStatic\n\nThe check on the return values of buf and xmlBufferAdd\nis added in xmlBufferCreateStatic.\n\nIf the return values are incorrect, the memory is released\nand NULL is returned.\n"
    },
    {
      "commit": "b279fee61a429fe78d0526d7edd999906ce76a23",
      "tree": "45d9b7932c1eabd25840cf3b8f8cd4d318bb9dc5",
      "parents": [
        "67c34fe24e8b627138f95eb45a24d55547981c49"
      ],
      "author": {
        "name": "zhuofeng",
        "email": "zhuofeng85@gmail.com",
        "time": "Wed May 20 03:02:23 2026 +0000"
      },
      "committer": {
        "name": "zhuofeng",
        "email": "zhuofeng85@gmail.com",
        "time": "Wed May 20 03:02:23 2026 +0000"
      },
      "message": "The check for `size \u003d\u003d SIZE_MAX` in the xmlBufCreateMem function is added."
    },
    {
      "commit": "67c34fe24e8b627138f95eb45a24d55547981c49",
      "tree": "6671583d2a0923dae6977d88fdcc7eda34349ea5",
      "parents": [
        "39b66eb2089f491eacf8e22a7965a235f7f5735e"
      ],
      "author": {
        "name": "Ruben Thijssen",
        "email": "ruben.thijssen@cba.com.au",
        "time": "Fri May 15 15:42:18 2026 +1000"
      },
      "committer": {
        "name": "Ruben Thijssen",
        "email": "ruben.thijssen@cba.com.au",
        "time": "Fri May 15 15:45:33 2026 +1000"
      },
      "message": "fix(xinclude): propagate parseFlags in xmlXIncludeProcess and xmlXIncludeProcessTree\n"
    },
    {
      "commit": "39b66eb2089f491eacf8e22a7965a235f7f5735e",
      "tree": "a3bc8ee85a32f614a70f431d406af706a81cc7a9",
      "parents": [
        "107b56582c5e5f99121a6456d7c441286dccc99d"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Mon Apr 27 14:42:15 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Tue May 12 07:19:03 2026 +0000"
      },
      "message": "xmlreader: Copy DTD in xmlTextReaderDumpCopy\n\nThis patch makes sure that the XML_DTD_NODE is copied during the\nxmlTextReaderDumpCopy.\n\nWith this change, the xmlStaticCopyNode function now copies XML_DTD_NODE\ninstead of returning NULL.\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/issues/1108\n"
    },
    {
      "commit": "107b56582c5e5f99121a6456d7c441286dccc99d",
      "tree": "42d4d10c15d65f094f88255a76617acd554acc3e",
      "parents": [
        "b15a388a6148e1a61c52f2c057b4554db08ce808"
      ],
      "author": {
        "name": "Zhihan Zheng",
        "email": "chnzzh@outlook.com",
        "time": "Fri May 08 20:39:59 2026 +0800"
      },
      "committer": {
        "name": "Zhihan Zheng",
        "email": "chnzzh@outlook.com",
        "time": "Fri May 08 20:39:59 2026 +0800"
      },
      "message": "xmlcatalog: fix missing argument check for --add\n\nThe first pass over command line options advances the index by 2 or 3\nwhen --add is detected, but malformed invocations can leave the index\npast the valid argument range.\n\nValidate the index after consuming option arguments and reject malformed\n--add invocations before later code reaches argv[i + 3].\n\nThis turns the buggy path into a regular usage error and avoids the\nOOB read in xmlcatalog.\n"
    },
    {
      "commit": "b15a388a6148e1a61c52f2c057b4554db08ce808",
      "tree": "ec05de5ef3f1ba562a91c0439342e71e4d3bde46",
      "parents": [
        "a53503cb00bba3c0856c571947ca05ad63575d30"
      ],
      "author": {
        "name": "Ion Nistor",
        "email": "ionutn@gmail.com",
        "time": "Thu May 07 08:13:08 2026 +0000"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Thu May 07 08:13:08 2026 +0000"
      },
      "message": "build: gate xmllint/xmlcatalog tests on LIBXML2_WITH_PROGRAMS\n"
    },
    {
      "commit": "a53503cb00bba3c0856c571947ca05ad63575d30",
      "tree": "b33ecf668fe230c4c35da528c74c8262d4e134ed",
      "parents": [
        "b06e036416129bfafb8c288e8d9a9727e1ba50c2"
      ],
      "author": {
        "name": "Kevin Braun",
        "email": "kbraun@obj-sys.com",
        "time": "Wed Apr 22 13:05:05 2026 -0400"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon May 04 07:56:25 2026 +0000"
      },
      "message": "Fix memory leak in static Windows library, for the case where libxml is used on the main thread.\n"
    },
    {
      "commit": "b06e036416129bfafb8c288e8d9a9727e1ba50c2",
      "tree": "ec019eac63e64b22ef4ac605d88248e3a1e12114",
      "parents": [
        "595d7d8f6aac7f8374ad73ebe66479d1316f81a8"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Mon May 04 09:54:34 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Mon May 04 09:54:34 2026 +0200"
      },
      "message": "xmlIO: Check for int overflow before calling writecallback\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/work_items/1111\n"
    },
    {
      "commit": "595d7d8f6aac7f8374ad73ebe66479d1316f81a8",
      "tree": "2e4668c71e6f76736071f71531643e43ce8cb710",
      "parents": [
        "a454e6f4ff3ed28f9d930d6cb2e98eeda6f4b6f2"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Mon May 04 09:32:43 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Mon May 04 09:33:45 2026 +0200"
      },
      "message": "xpointer: Check overflow in xmlXPtrEvalXPtrPart\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/work_items/1113\n"
    },
    {
      "commit": "a454e6f4ff3ed28f9d930d6cb2e98eeda6f4b6f2",
      "tree": "082aecaf65cbde1d44fe3d714d29520a9d1ffc4e",
      "parents": [
        "79c6eef0a1a9462e9c0b80a417406c8656c28eb1"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Mon May 04 08:36:58 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Mon May 04 08:36:58 2026 +0200"
      },
      "message": "xmlschemas: Initialize some variables\n"
    },
    {
      "commit": "79c6eef0a1a9462e9c0b80a417406c8656c28eb1",
      "tree": "a5bf0d0ed87bd1e08bd2ccc2434a78a7d5ac7b41",
      "parents": [
        "61e5f3ea97609bb221a355579d2285ddd28d90d2"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Mon May 04 07:56:18 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Mon May 04 07:56:18 2026 +0200"
      },
      "message": "xmlregexp: Calc string length after null checking\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/work_items/1107\n"
    },
    {
      "commit": "61e5f3ea97609bb221a355579d2285ddd28d90d2",
      "tree": "ec458be48f02d41d1762ee3c994fce8989512a92",
      "parents": [
        "b9da8bcc7854cfb950d7db2e35fec808eea12e46"
      ],
      "author": {
        "name": "mohammadmseet-hue",
        "email": "mohammadmseet@gmail.com",
        "time": "Thu Apr 16 02:54:37 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Fri Apr 24 05:43:17 2026 +0000"
      },
      "message": "fix: add bounds checks to xmlSnprintfElements in valid.c\n\nCVE-2025-24928 fixed xmlSnprintfElementContent for unchecked strcat()\nwrites, but the sibling function xmlSnprintfElements has the identical\nunfixed pattern. The strcat(buf, \"(\") before the while loop and\nstrcat(buf, \")\") after the loop exit have no bounds checks.\n\nAdd remaining-space checks before both strcat calls, with early return\nand ellipsis when space is insufficient.\n"
    },
    {
      "commit": "b9da8bcc7854cfb950d7db2e35fec808eea12e46",
      "tree": "05200691fd432ebab7dcbb83419c73d5c36b0333",
      "parents": [
        "e41032ae9f94d0db2d1074eb68ac7d69bd9e0992"
      ],
      "author": {
        "name": "mohammadmseet-hue",
        "email": "mohammadmseet@gmail.com",
        "time": "Thu Apr 16 02:54:30 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Fri Apr 24 05:43:17 2026 +0000"
      },
      "message": "fix: add length check to xmlURIEscapeStr in uri.c\n\nCommit 538b2e38 fixed xmlBuildRelativeURISafe for the pattern where\nxmlStrlen() returns 0 for strings longer than INT_MAX, but\nxmlURIEscapeStr was not fixed. Without the check, len \u003d 0 + 20, and\nthe write loop eventually overflows via int wrapping of the out counter.\n\nAdd a return NULL guard when xmlStrlen returns 0.\n"
    },
    {
      "commit": "e41032ae9f94d0db2d1074eb68ac7d69bd9e0992",
      "tree": "8cb8a1e4ce88d1c9faa99e0604368f0dbb1103b5",
      "parents": [
        "a7511af09f99995cdf81994db21f4eba564276b5"
      ],
      "author": {
        "name": "mohammadmseet-hue",
        "email": "mohammadmseet@gmail.com",
        "time": "Thu Apr 16 02:54:24 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Fri Apr 24 05:43:17 2026 +0000"
      },
      "message": "fix: add overflow checks to xmlDictAddQString in dict.c\n\nxmlDictAddString has overflow guards for pool size calculations, but its\nsibling xmlDictAddQString lacks these entirely. The namelen + plen + 1\naddition can overflow unsigned int, and 4 * (overflowed_value) produces\na small allocation, leading to heap buffer overflow when memcpy writes\nthe prefix and name.\n\nAdd the same SIZE_MAX-based overflow guards and safe size_t cast.\n"
    },
    {
      "commit": "a7511af09f99995cdf81994db21f4eba564276b5",
      "tree": "1b836b6360aa3f6d21c72a38e99cbc927c92a538",
      "parents": [
        "7cea3fd1557437b88f2c7b5e1b71a2d5fb152b55"
      ],
      "author": {
        "name": "Hieu Le Minh",
        "email": "leminhhieu.opensource@gmail.com",
        "time": "Sat Apr 18 21:18:24 2026 +0700"
      },
      "committer": {
        "name": "Hieu Le Minh",
        "email": "leminhhieu.opensource@gmail.com",
        "time": "Sat Apr 18 21:37:23 2026 +0700"
      },
      "message": "xmlregexp: Prevent out-of-bounds read in NXT macro\n\nFixes: https://gitlab.gnome.org/GNOME/libxml2/-/issues/1099\n"
    },
    {
      "commit": "7cea3fd1557437b88f2c7b5e1b71a2d5fb152b55",
      "tree": "88f55f5710ee15d49fdbc54a387b9faf535d59ce",
      "parents": [
        "226b560837b90dea9b14431eca6e6fda8fb01ab4"
      ],
      "author": {
        "name": "Ariel Schon",
        "email": "ariel.schon12@gmail.com",
        "time": "Tue Apr 14 21:57:19 2026 +0000"
      },
      "committer": {
        "name": "Ariel Schon",
        "email": "ariel.schon12@gmail.com",
        "time": "Tue Apr 14 21:57:19 2026 +0000"
      },
      "message": "testparser: Add regression test for entity expansion under XSD validation\n\nCovers the xmlParseReference type confusion: without the preceding\nfix, xmlTextReaderSetSchema + an internal entity reference crashes\nwith SIGSEGV on the first read. The test also guards against a\nsilent validation bypass by feeding invalid entity-expanded content\nand asserting that the schema reports the element as invalid.\n"
    },
    {
      "commit": "226b560837b90dea9b14431eca6e6fda8fb01ab4",
      "tree": "af9cc2e4f7252043cd62eccc3578e9745c43738b",
      "parents": [
        "310564cc6b2c5766bbf053bc29353df6e6a655b6"
      ],
      "author": {
        "name": "Ariel Schon",
        "email": "ariel.schon12@gmail.com",
        "time": "Tue Apr 14 21:57:15 2026 +0000"
      },
      "committer": {
        "name": "Ariel Schon",
        "email": "ariel.schon12@gmail.com",
        "time": "Tue Apr 14 21:57:15 2026 +0000"
      },
      "message": "parser: Pass userData to SAX text callbacks in xmlParseReference\n\nWhen replaceEntities is on and the entity\u0027s cached tree is reused,\nthe first/last text-child optimization in xmlParseReference called\nctxt-\u003esax-\u003echaracters / cdataBlock with ctxt as the first argument\ninstead of ctxt-\u003euserData. Every other SAX callsite in parser.c\ncorrectly passes ctxt-\u003euserData.\n\nWith xmlSchemaSAXPlug installed (as set up by\nxmlTextReaderSetSchema / xmlTextReaderSchemaValidate), userData is\na _xmlSchemaSAXPlug*, so handing over a raw ctxt to the registered\ncharactersSplit handler produces a type-confused dereference:\ncharactersSplit reads ctxt-\u003emyDoc as user_sax and ctxt-\u003emyDoc-\u003eURL\nas user_sax-\u003echaracters, then calls that string pointer as code.\nThe result is a reliable SIGSEGV on the first entity reference in\nany XSD-validated xmlTextReader stream (and a silent validation\nbypass on the rare targets where the confused call doesn\u0027t crash).\n\nFix by passing ctxt-\u003euserData, matching the rest of the file.\n"
    },
    {
      "commit": "310564cc6b2c5766bbf053bc29353df6e6a655b6",
      "tree": "951e9c371deb568f3b154c582e63ba9f5eb90edf",
      "parents": [
        "05a8ffeada05501f7a0288454e79c21203a31dd1"
      ],
      "author": {
        "name": "James Lan",
        "email": "jameslan@gmail.com",
        "time": "Mon Apr 13 09:47:50 2026 +0000"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Apr 13 09:47:50 2026 +0000"
      },
      "message": "schemas: Fix relative schemaLocation resolution in XSI assembly in streaming mode\n"
    },
    {
      "commit": "05a8ffeada05501f7a0288454e79c21203a31dd1",
      "tree": "42e0453f756793ded7755313658deb13db511739",
      "parents": [
        "c9aa3048eb55333a51b4176599c4e1c7a5458561"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Tue Apr 07 19:42:45 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Apr 13 09:21:20 2026 +0000"
      },
      "message": "runtest: Add xmlCopyEntity test\n\nMakes sure that entities are copied correctly with xmlCopyDoc.\n\nSee https://gitlab.gnome.org/GNOME/libxml2/-/issues/1074\n"
    },
    {
      "commit": "c9aa3048eb55333a51b4176599c4e1c7a5458561",
      "tree": "54196468ef3d6eb03d4226a4c0c88271f45d108e",
      "parents": [
        "0fd00ec5f51065340c98f084df045d76258c6bc3"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Tue Apr 07 19:00:36 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Apr 13 09:21:20 2026 +0000"
      },
      "message": "entities: copy children in xmlCopyEntity\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/issues/1074\n"
    },
    {
      "commit": "0fd00ec5f51065340c98f084df045d76258c6bc3",
      "tree": "8f9638254b3e3f3ca041061aba4ac47ee8639971",
      "parents": [
        "07b13346cb7421090545bfb29f58bcbef8d36261"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Thu Apr 09 14:11:48 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Fri Apr 10 12:28:55 2026 +0000"
      },
      "message": "c14n: Fix Type confusion in xmlC14NProcessAttrsAxis\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/issues/1096\n\nThanks to Nick Wellnhofer for the report.\n"
    },
    {
      "commit": "07b13346cb7421090545bfb29f58bcbef8d36261",
      "tree": "cc6d2644922227a95378418130bff6cdcf9d7339",
      "parents": [
        "7736789aba86915a7418b27cf8b747d3f97c56e5"
      ],
      "author": {
        "name": "Hieu Le Minh",
        "email": "leminhhieu.opensource@gmail.com",
        "time": "Sat Apr 04 12:21:01 2026 +0700"
      },
      "committer": {
        "name": "Hieu Le Minh",
        "email": "leminhhieu.opensource@gmail.com",
        "time": "Wed Apr 08 07:15:10 2026 +0700"
      },
      "message": "xmlregexp: Add support for non-standard escapes in character groups\n\nContinue from https://gitlab.gnome.org/GNOME/libxml2/-/merge_requests/116\n"
    },
    {
      "commit": "7736789aba86915a7418b27cf8b747d3f97c56e5",
      "tree": "7a63c433bbd978328517121312a8e87fc1cadae4",
      "parents": [
        "cf5da892330bbbfcfada26f62b4c616010fb5c20"
      ],
      "author": {
        "name": "Yenya",
        "email": "yenya030@gmail.com",
        "time": "Wed Mar 25 17:16:15 2026 +0000"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Tue Mar 31 12:06:55 2026 +0000"
      },
      "message": "xmlreader: propagate reader resource loaders to validator parsers"
    },
    {
      "commit": "cf5da892330bbbfcfada26f62b4c616010fb5c20",
      "tree": "7e403d90f46cd038a98e66c22056f09248944436",
      "parents": [
        "cd13f0675899a31fa4cfc9a32ec3b53ad7547ca5"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Mon Mar 30 13:02:38 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Tue Mar 31 10:59:39 2026 +0000"
      },
      "message": "python: Fix generator.py with python3 unicode\n"
    },
    {
      "commit": "cd13f0675899a31fa4cfc9a32ec3b53ad7547ca5",
      "tree": "bdcd9456f3bc43ceed5c000882cd3c8c5d717830",
      "parents": [
        "5853eb53e12bd55ad5fafde4607be430aabfc94e"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Mon Mar 30 11:59:33 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Tue Mar 31 10:59:39 2026 +0000"
      },
      "message": "python: Make python bindings python2 compatible\n\nThis fix was provided by @ryandesign\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/issues/1092\n"
    },
    {
      "commit": "5853eb53e12bd55ad5fafde4607be430aabfc94e",
      "tree": "ba77e3dce760e963887013a74d1a63adc7804043",
      "parents": [
        "965750fcda6f23cf45dc7f35e011eb23747f58bf"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue Mar 31 12:42:13 2026 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue Mar 31 12:42:13 2026 +0200"
      },
      "message": "python: Add more regexp tests\n\nSee https://gitlab.gnome.org/GNOME/libxml2/-/issues/1086\n"
    },
    {
      "commit": "965750fcda6f23cf45dc7f35e011eb23747f58bf",
      "tree": "8fdcd1abe5d832f3b87c33518334bafa5622ecd9",
      "parents": [
        "ca6a8cf94672e6f3c48c08d6af2201599788fc17"
      ],
      "author": {
        "name": "Hieu Le Minh",
        "email": "leminhhieu.opensource@gmail.com",
        "time": "Wed Mar 25 19:19:26 2026 +0700"
      },
      "committer": {
        "name": "Hieu Le Minh",
        "email": "leminhhieu.opensource@gmail.com",
        "time": "Fri Mar 27 10:19:30 2026 +0700"
      },
      "message": "xmlregexp: Fix escape-sequence character range matching\n\nFixes: https://gitlab.gnome.org/GNOME/libxml2/-/issues/1086\n"
    },
    {
      "commit": "ca6a8cf94672e6f3c48c08d6af2201599788fc17",
      "tree": "b3aeda4fcae334e527e7956b6c9fed11da0f75db",
      "parents": [
        "00cec2bea400d4296b0b429458a283b4de890d49"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Tue Mar 17 20:30:53 2026 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Wed Mar 18 10:23:01 2026 +0100"
      },
      "message": "runtest: Add test for Memory leak in xmlInputFromFd\n\nSee https://gitlab.gnome.org/GNOME/libxml2/-/issues/1075\n"
    },
    {
      "commit": "00cec2bea400d4296b0b429458a283b4de890d49",
      "tree": "feaf2e544e4b58ceac2a72a310929adee02a306f",
      "parents": [
        "8f5f02ba295a20dfc5ddd8de03894918c5870ec8"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Mon Mar 16 20:38:57 2026 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Tue Mar 17 20:29:07 2026 +0100"
      },
      "message": "xmlreader: Free input in xmlReaderForFd\n\nxmlInputFromFd creates a new descriptor with \"dup\" so we need to keep\nthe closecallback if the input is compressed.\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/issues/1075\n"
    },
    {
      "commit": "8f5f02ba295a20dfc5ddd8de03894918c5870ec8",
      "tree": "0b8493a0fbe6c126b29fb28243e53e0cabde0b2e",
      "parents": [
        "ad6111de9608425c13f1e715c90d053f0f4d1b45"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue Mar 10 19:19:02 2026 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Mar 16 06:53:43 2026 +0000"
      },
      "message": "xmlstring: Free cur on every error for xmlStrncat\n\nThis change makes the behavior of xmlStrncat coherent, if it returns\nNULL, the *cur pointer should be freed as the doc said that it shouldn\u0027t\nbe freed by the caller. If this function takes ownership of the pointer,\nwe should make sure to free the memory everytime we return NULL or we\ncan have memory leaks.\n\nSee https://gitlab.gnome.org/GNOME/libxml2/-/issues/1073\n"
    },
    {
      "commit": "ad6111de9608425c13f1e715c90d053f0f4d1b45",
      "tree": "3b97cef9cceb7cfc6d74893efb8cf37aa5d7dadd",
      "parents": [
        "046931e64e9e081e82c341f6455d070716fb8cf2"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Mon Mar 09 11:11:53 2026 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Mar 16 06:53:43 2026 +0000"
      },
      "message": "c14n: Reuse tmp_str, xmlStrcat reallocates *cur\n\nxmlStrcat reallocates the dest string, so there\u0027s no need to use\ntmp_str2 and free if it fails.\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/issues/1073\n"
    },
    {
      "commit": "046931e64e9e081e82c341f6455d070716fb8cf2",
      "tree": "21e33777563e28f98130f619d32faffe8c81731b",
      "parents": [
        "53c3fe2ef455d5dad834fd62e0ccb286e9918320"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue Mar 10 20:30:20 2026 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Mar 16 06:45:13 2026 +0000"
      },
      "message": "python: Do not decref string after adding to the list\n\nThe python API PyList_SetItem function \"steals\" a reference to item, so\nwe don\u0027t need to call Py_DECREF here.\n\nhttps://docs.python.org/3.13/c-api/list.html#c.PyList_SetItem\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/issues/1076\n"
    },
    {
      "commit": "53c3fe2ef455d5dad834fd62e0ccb286e9918320",
      "tree": "6d5f7227c3066d25f9541f3f629f783f89402ab8",
      "parents": [
        "4b35628e97472eaf23d8a841d2f711f7c2f96255"
      ],
      "author": {
        "name": "LCaliman",
        "email": "laureen0alexa@gmail.com",
        "time": "Sun Mar 15 18:11:25 2026 -0400"
      },
      "committer": {
        "name": "Laureen Caliman",
        "email": "laureen0alexa@proton.me",
        "time": "Sun Mar 15 23:44:37 2026 +0000"
      },
      "message": "test: fix mismatched signed/unsigned comparison\n"
    },
    {
      "commit": "4b35628e97472eaf23d8a841d2f711f7c2f96255",
      "tree": "97d54a1b67e3b21713c5a303f0acfeee85d60dc4",
      "parents": [
        "fac4411aa65a2ebf936be50856ab14c148966e9d"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue Feb 24 14:47:57 2026 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Thu Mar 05 18:55:25 2026 +0000"
      },
      "message": "Fix nanohttp.c build when --without-output\n\nThe xmlRegisterHTTPPostCallbacks and xmlRegisterDefaultOutputCallbacks\nare inside \"#ifdef LIBXML_OUTPUT_ENABLED\" in the xmlIO.h, so we should\nhave the same in the nanohttp.c\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/issues/1057\n"
    },
    {
      "commit": "fac4411aa65a2ebf936be50856ab14c148966e9d",
      "tree": "c16f4276476e7669f120244ede7164acb8de5909",
      "parents": [
        "9036f16395cc96b04f5dcfc7d38aef3280aa1594"
      ],
      "author": {
        "name": "Jan Alexander Steffens (heftig)",
        "email": "heftig@archlinux.org",
        "time": "Wed Mar 04 19:08:16 2026 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Thu Mar 05 18:31:27 2026 +0100"
      },
      "message": "catalog: Free xmlCatalogResolveCache on cleanup\n\nOtherwise the `tstLastError.py` test will complain about a memory leak.\n\nFixes: b706c5c5b7ce11d002a5b77ff938aa3693931c12 (Add xmlCatalogResolveCache)\nFixes: https://gitlab.gnome.org/GNOME/libxml2/-/issues/1069\n"
    },
    {
      "commit": "9036f16395cc96b04f5dcfc7d38aef3280aa1594",
      "tree": "ed30b8597728e4d960de188cf70961d5a93b89ef",
      "parents": [
        "ee9fdfcc244a5d06b5b087437f5cb3decd05d689"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Thu Mar 05 11:14:57 2026 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Thu Mar 05 11:16:48 2026 +0100"
      },
      "message": "CI: Remove not working ci jobs\n\nThe fork repo used in downstream-perl and downstream-xmlstarlet doesn\u0027t\nexists anymore so these jobs fails always.\n"
    },
    {
      "commit": "ee9fdfcc244a5d06b5b087437f5cb3decd05d689",
      "tree": "e2dba92adce4edeef8c677c688b92a251fb30600",
      "parents": [
        "0d98fe84c8883e70f6728daa13e13c42367b520b"
      ],
      "author": {
        "name": "ylwango613",
        "email": "1217816127@qq.com",
        "time": "Tue Feb 24 20:19:43 2026 +0800"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Mar 02 10:03:52 2026 +0000"
      },
      "message": "catalog: fix stack overflow from self-referencing SGML CATALOG entries\n\nAn SGML catalog file with multiple CATALOG directives referencing itself\ncauses exponential recursion in xmlParseSGMLCatalog(), leading to stack\noverflow. With K self-referencing entries and MAX_CATAL_DEPTH\u003d50, total\nrecursive parses \u003d K^50.\n\nAdd deduplication by registering expanded filenames in the catalog hash\ntable before calling xmlExpandCatalog(), consistent with the existing\nsuper branch.\n\nCloses #1064\n"
    },
    {
      "commit": "0d98fe84c8883e70f6728daa13e13c42367b520b",
      "tree": "7ae36946707e4108e46821288e8486801567df04",
      "parents": [
        "28da8549a0519c11b5bb40cbb62c8f5fa67da83d"
      ],
      "author": {
        "name": "Stéphane Cerveau",
        "email": "scerveau@igalia.com",
        "time": "Sun Mar 01 20:32:21 2026 +0100"
      },
      "committer": {
        "name": "Stéphane Cerveau",
        "email": "scerveau@igalia.com",
        "time": "Sun Mar 01 20:44:16 2026 +0100"
      },
      "message": "meson: remove hardcoded buildtype\u003ddebug default\n\nForcing buildtype\u003ddebug can cause CRT mismatches on Windows. For\nexample, a release-built glib-compile-resources spawning a debug-built\nxmllint crashes with STATUS_STACK_BUFFER_OVERRUN (0xC0000409) due to\nthe debug/release CRT incompatibility (ucrtbased.dll vs ucrtbase.dll).\n\nA Meson 1.8 regression (fixed in 1.8.3) also caused subproject\ndefault_options to incorrectly override command-line options.\n\nLet Meson use its own default (debugoptimized) instead.\n"
    },
    {
      "commit": "28da8549a0519c11b5bb40cbb62c8f5fa67da83d",
      "tree": "d1fdfaccba766a00ebd3fb3e4431c5ad375930a5",
      "parents": [
        "97233ebe302efdd1f1d7213480d52183b6c07666"
      ],
      "author": {
        "name": "ylwango613",
        "email": "1217816127@qq.com",
        "time": "Tue Feb 24 18:23:50 2026 +0800"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Thu Feb 26 10:36:28 2026 +0000"
      },
      "message": "schematron: fix additional memory leaks on error paths\n\nIn xmlSchematronParseRule, free report when xmlSchematronAddTest fails\nin the assert and report blocks.\n\nIn xmlSchematronAddTest, free the compiled XPath expression when\nxmlMalloc fails.\n"
    },
    {
      "commit": "97233ebe302efdd1f1d7213480d52183b6c07666",
      "tree": "412f33548cb0b20cf142336411dc7db09cf10377",
      "parents": [
        "edb5f22d6813d55bed75da0772bda872fc54a479"
      ],
      "author": {
        "name": "ylwango613",
        "email": "1217816127@qq.com",
        "time": "Tue Feb 24 18:20:42 2026 +0800"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Thu Feb 26 10:36:28 2026 +0000"
      },
      "message": "schematron: fix memory leaks on error paths in xmlSchematronParseRule\n\nFree allocated name and value before early returns in the let-variable\nparsing block. Previously, name was leaked when value was NULL or empty,\nand both name and value were leaked when XPath compilation failed.\n"
    },
    {
      "commit": "edb5f22d6813d55bed75da0772bda872fc54a479",
      "tree": "fbdd8a0530fd746ae76c1ad9ef91a554c875318a",
      "parents": [
        "538b2e38a6c6f2b662c532e9ac1520b768d2472f"
      ],
      "author": {
        "name": "ylwango613",
        "email": "1217816127@qq.com",
        "time": "Fri Feb 20 20:04:43 2026 +0800"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Thu Feb 26 10:36:28 2026 +0000"
      },
      "message": "schematron: fix NULL pointer dereference in xmlSchematronParseRule\n\nThe return value of xmlMalloc at schematron.c:1007 was not checked for\nNULL before being dereferenced. A memory allocation failure would cause\na write to address 0x8 (NULL + offset), resulting in a segmentation\nfault.\n\nEvery other xmlMalloc call in schematron.c already has a proper NULL\ncheck. This patch adds the missing check and frees the name, value, and\ncompiled XPath expression before returning to avoid memory leaks on the\nerror path.\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/issues/1059\n"
    },
    {
      "commit": "538b2e38a6c6f2b662c532e9ac1520b768d2472f",
      "tree": "ab07a8f93186fced260d698b08b4a0d13a5c63d4",
      "parents": [
        "e334a9d661c175203517565c4efae87a6577d5eb"
      ],
      "author": {
        "name": "ylwango613",
        "email": "1217816127@qq.com",
        "time": "Fri Feb 20 17:12:42 2026 +0800"
      },
      "committer": {
        "name": "ylwango613",
        "email": "1217816127@qq.com",
        "time": "Fri Feb 20 20:00:35 2026 +0800"
      },
      "message": "uri: fix signed integer overflow in xmlBuildRelativeURISafe\n\nThis patch changes the types of ix, nbslash, len, and pos from int to\nsize_t in xmlBuildRelativeURISafe. These variables are used to index\nand measure path strings that can exceed INT_MAX bytes (~2.14 GB),\ncausing two independent signed integer overflow vulnerabilities.\n\n1. The loop counter ix can overflow from INT_MAX to INT_MIN when\n   traversing a base path longer than INT_MAX bytes, leading to an\n   out-of-bounds read (CWE-125).\n\n2. The expression 3 * nbslash in the xmlMalloc size argument can\n   overflow int, resulting in an undersized allocation followed by\n   a heap buffer overflow in the write loop (CWE-122).\n\nAn overflow check is also added before the xmlMalloc call to handle\nthe case where the size_t arithmetic would itself overflow.\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/issues/1062\n"
    },
    {
      "commit": "e334a9d661c175203517565c4efae87a6577d5eb",
      "tree": "7f8e579f602df11851622d9052ea71ed0a3ccfa0",
      "parents": [
        "a04adcd7be62e927f8763ed904c651aa704e2243"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Thu Feb 19 20:52:40 2026 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Thu Feb 19 20:52:40 2026 +0100"
      },
      "message": "xmlIO: use size_t for buffer size reallocation\n\nThis patch changes the newSize variable from int to size_t. This\nvariable is used to calculate the new buffer size and operates with\nother size_t declared variables (size and totalSize) so the size_t is\nthe correct type to use here.\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/issues/1060\n"
    },
    {
      "commit": "a04adcd7be62e927f8763ed904c651aa704e2243",
      "tree": "95a481f5ae589d65e347bbe7a56ed2a530e81a4b",
      "parents": [
        "ab7693ab4a24480e0f3a4c7ed1fcbf490a36c38c"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Fri Feb 06 10:11:47 2026 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Tue Feb 17 11:28:43 2026 +0000"
      },
      "message": "Add xmlCatalogResolveCache\n\nThis will improve performance in entity resolution by avoiding checking\nthe same catalog several times.\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/issues/1051\n"
    },
    {
      "commit": "ab7693ab4a24480e0f3a4c7ed1fcbf490a36c38c",
      "tree": "36c4e34135ecfcfd993d2a06b0d29ecdddab08e1",
      "parents": [
        "a03b03df5b1153b18b3f9a472e679dd58c220e8a"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue Feb 17 12:17:24 2026 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue Feb 17 12:17:24 2026 +0100"
      },
      "message": "Revert \"uri: Handle \\\u0027s in path for xmlParseURI\"\n\nThis reverts commit a03b03df5b1153b18b3f9a472e679dd58c220e8a.\n\nDidn\u0027t consider all edge cases:\nSee https://gitlab.gnome.org/GNOME/libxml2/-/merge_requests/384#note_2682735\n"
    },
    {
      "commit": "a03b03df5b1153b18b3f9a472e679dd58c220e8a",
      "tree": "539c7f48bac5312995aec3d1b94eb3a3c348f8fb",
      "parents": [
        "c1342946da47e14d64ea4af211a9402c937aa7f5"
      ],
      "author": {
        "name": "Daniel Lehman",
        "email": "dlehman25@gmail.com",
        "time": "Fri Feb 13 09:46:54 2026 -0800"
      },
      "committer": {
        "name": "Daniel Lehman",
        "email": "dlehman25@gmail.com",
        "time": "Sat Feb 14 14:02:46 2026 -0800"
      },
      "message": "uri: Handle \\\u0027s in path for xmlParseURI\n"
    },
    {
      "commit": "c1342946da47e14d64ea4af211a9402c937aa7f5",
      "tree": "36c4e34135ecfcfd993d2a06b0d29ecdddab08e1",
      "parents": [
        "5dfd9065ec30d3fe19998cd270b5a9dec0125ed1"
      ],
      "author": {
        "name": "Yun",
        "email": "emptyiscolor@gmail.com",
        "time": "Wed Feb 11 22:32:12 2026 +0000"
      },
      "committer": {
        "name": "Yun",
        "email": "emptyiscolor@gmail.com",
        "time": "Wed Feb 11 22:32:12 2026 +0000"
      },
      "message": "fix memory leak in issue 1054\n"
    },
    {
      "commit": "5dfd9065ec30d3fe19998cd270b5a9dec0125ed1",
      "tree": "5514edd64376fe4f87919920666ef8e88d81ffbb",
      "parents": [
        "359083591e997470f34501b48c7e78b09f6090b1"
      ],
      "author": {
        "name": "Jayakrishna Menon",
        "email": "jkrshnmenon@gmail.com",
        "time": "Tue Feb 10 14:24:15 2026 -0700"
      },
      "committer": {
        "name": "Jayakrishna Menon",
        "email": "jkrshnmenon@gmail.com",
        "time": "Tue Feb 10 14:24:15 2026 -0700"
      },
      "message": "use duplicating variant in relaxng to mitigate UAF\n"
    },
    {
      "commit": "359083591e997470f34501b48c7e78b09f6090b1",
      "tree": "305de5669644e84a24a88ad0df045aedcc82b34c",
      "parents": [
        "54824911cd8a5f6918d2ca74cfd86538ee4b4d05"
      ],
      "author": {
        "name": "Mike Dalessio",
        "email": "mike@37signals.com",
        "time": "Sat Feb 07 16:53:02 2026 -0500"
      },
      "committer": {
        "name": "Mike Dalessio",
        "email": "mike@37signals.com",
        "time": "Mon Feb 09 12:57:25 2026 -0500"
      },
      "message": "Fix xmlRemoveEntity removing from wrong hash table\n\n`xmlRemoveEntity` looked up parameter entities in `pentities` but then\nincorrectly removed from `entities`, leaving the parameter entity\norphaned in `pentities` and potentially corrupting a same-named\ngeneral entity.\n"
    },
    {
      "commit": "54824911cd8a5f6918d2ca74cfd86538ee4b4d05",
      "tree": "39f90a64b7001f655cba2809538b5214e47f67bc",
      "parents": [
        "2cc5834033db61fb7adc242fb15f7d1e13f66c14"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue Jan 27 09:57:09 2026 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue Jan 27 10:22:21 2026 +0100"
      },
      "message": "dist: Add generated documentation to the dist\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/issues/1048\n"
    },
    {
      "commit": "2cc5834033db61fb7adc242fb15f7d1e13f66c14",
      "tree": "46925f8b94b54aa5a1c1dd26b90aa53981f0981a",
      "parents": [
        "deed3b7873dff30b7f87f7f33154c9932a772522"
      ],
      "author": {
        "name": "Steve Lhomme",
        "email": "robux4@ycbcr.xyz",
        "time": "Fri Jan 16 09:19:01 2026 +0100"
      },
      "committer": {
        "name": "Steve Lhomme",
        "email": "robux4@ycbcr.xyz",
        "time": "Sat Jan 24 06:38:40 2026 +0000"
      },
      "message": "threads: don\u0027t force _WIN32_WINNT to Vista if it\u0027s set to a higher value\n\nThis will prevent Universal Windows Platform (UWP) targeting Windows 10+ to fail.\nSome UWP API\u0027s that are XP/Vista/7 API\u0027s are not available in Windows 8 but available in Windows 10.\nSo if Windows 10 is targetting we should not pretend to build for Windows Vista (0x0600).\n\nIf the user didn\u0027t set a _WIN32_WINNT value, the Windows SDK/mingw-w64 have a\ndefault value that will be used. We can use sdkddkver.h to get that value.\nIf the default value is Windows 10 we should not lower it either.\n"
    },
    {
      "commit": "deed3b7873dff30b7f87f7f33154c9932a772522",
      "tree": "fa6cec184887486fc009a30d152d10a9a0f6c3e9",
      "parents": [
        "f8399e62a31095bf1ced01827c33f9b29494046f"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Sun Jan 18 19:47:11 2026 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Wed Jan 21 13:29:08 2026 +0000"
      },
      "message": "catalog: Do not check value for duplication nextCatalog\n\nThe value field stores the path as it appears in the catalog definition,\nthe URL is built using xmlBuildURI that changes the relative paths to\nabsolute.\n\nThis change fixes the issue of using relative path to the same catalog\nin the same file.\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/issues/1040\n"
    },
    {
      "commit": "f8399e62a31095bf1ced01827c33f9b29494046f",
      "tree": "1bafa222f29a6db2d624f579c9d285f70217c85b",
      "parents": [
        "19549c61590c1873468c53e0026a2fbffae428ef"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Fri Dec 19 12:27:54 2025 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Wed Jan 21 13:29:08 2026 +0000"
      },
      "message": "testcatalog: Add new tests for catalog.c\n\nAdds a new test program to run specific tests related to catalog\nparsing.\n\nThis initial version includes a couple of tests, the first one to check\nthe infinite recursion detection related to:\nhttps://gitlab.gnome.org/GNOME/libxml2/-/issues/1018.\n\nThe second one tests the nextCatalog element repeated parsing, related\nto:\nhttps://gitlab.gnome.org/GNOME/libxml2/-/issues/1019\nhttps://gitlab.gnome.org/GNOME/libxml2/-/issues/1040\n"
    },
    {
      "commit": "19549c61590c1873468c53e0026a2fbffae428ef",
      "tree": "060b72f63c1dbfca6741bd5ae210021ba4e63307",
      "parents": [
        "354f620a45fcba796a0f71ce20f2132896f415f2"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Fri Oct 10 09:38:31 2025 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Wed Jan 14 09:47:23 2026 +0000"
      },
      "message": "Add RelaxNG include limit\n\nThis patch adds a default xmlRelaxNGIncludeLimit of 1.000, and that\nlimit can be modified at runtime with the env variable\nRNG_INCLUDE_LIMIT.\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/issues/998\n"
    },
    {
      "commit": "354f620a45fcba796a0f71ce20f2132896f415f2",
      "tree": "31564d0e466dbd365e75e678aa79bdfebb9797b5",
      "parents": [
        "34b3c5dd83ad750f7ad20746066631768eecc28f"
      ],
      "author": {
        "name": "James Lan",
        "email": "jameslan@gmail.com",
        "time": "Mon Oct 27 14:40:22 2025 -0700"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Wed Jan 14 07:38:48 2026 +0000"
      },
      "message": "build: compile option WINPATH to allow processing Windows path on other platforms\n"
    },
    {
      "commit": "34b3c5dd83ad750f7ad20746066631768eecc28f",
      "tree": "ad823c94491af21017323494c123ce5941f9b8f9",
      "parents": [
        "24a0ceca5cf1b0b12dce1a11a7e2801ce31b324b"
      ],
      "author": {
        "name": "emptyiscolor",
        "email": "emptyiscolor@gmail.com",
        "time": "Wed Jan 07 09:27:55 2026 +0000"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Wed Jan 14 07:25:11 2026 +0000"
      },
      "message": "move src to expected path\n"
    },
    {
      "commit": "24a0ceca5cf1b0b12dce1a11a7e2801ce31b324b",
      "tree": "a429dd5bebe928f7c7f2fb388b366f25bcc36410",
      "parents": [
        "51035e70684c6b5c7a28efd0181b85caaf139d87"
      ],
      "author": {
        "name": "emptyiscolor",
        "email": "emptyiscolor@gmail.com",
        "time": "Tue Jan 06 14:23:30 2026 +0000"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Wed Jan 14 07:25:11 2026 +0000"
      },
      "message": "test with fuzzing harnesses\n"
    },
    {
      "commit": "51035e70684c6b5c7a28efd0181b85caaf139d87",
      "tree": "ddba61fdcdb358c8a1a23be0d0da48cf1da078cf",
      "parents": [
        "0e50b31902cdb1eb242eb361c123e9e033b2af87"
      ],
      "author": {
        "name": "emptyiscolor",
        "email": "emptyiscolor@gmail.com",
        "time": "Tue Jan 06 14:21:38 2026 +0000"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Wed Jan 14 07:25:11 2026 +0000"
      },
      "message": "downstream of fuzzing harnesses\n"
    },
    {
      "commit": "0e50b31902cdb1eb242eb361c123e9e033b2af87",
      "tree": "49688e7da5543773b540d0e01363c20dad5c4763",
      "parents": [
        "b45e38edab72e4f09b24a5c9672df818f8df020c"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Wed Oct 08 09:18:51 2025 +0200"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Wed Jan 14 07:14:04 2026 +0000"
      },
      "message": "Ignore next/prev of documents when traversing XPath\n\nSee https://gitlab.gnome.org/GNOME/libxml2/-/issues/996\n"
    },
    {
      "commit": "b45e38edab72e4f09b24a5c9672df818f8df020c",
      "tree": "08f4dd36b6c8986a9d2ca91396d8cd1ce84c97c2",
      "parents": [
        "4c3f00ba393d69d8d903e37c05318d87a81f80fb"
      ],
      "author": {
        "name": "Trevor Gamblin",
        "email": "tgamblin@baylibre.com",
        "time": "Thu Jan 08 15:30:47 2026 -0500"
      },
      "committer": {
        "name": "Trevor Gamblin",
        "email": "tgamblin@baylibre.com",
        "time": "Mon Jan 12 09:21:54 2026 -0500"
      },
      "message": "testlimits: optionally accept \u0027-timeout\u0027 input\n\nFixes: #1032\n\nThe testlimits tests can use a lot of system resources, and thus they\nmay fail when run on systems under heavy load, given that the default\nparsing timeout is set to two seconds. Retain this default value, but\nmake the timeout length configurable with a new \u0027-timeout\u0027 flag.\n\nSigned-off-by: Trevor Gamblin \u003ctgamblin@baylibre.com\u003e\n"
    },
    {
      "commit": "4c3f00ba393d69d8d903e37c05318d87a81f80fb",
      "tree": "24f2a61a4bc66fb846af5ccc569ff672372981f8",
      "parents": [
        "f75abfcaa419a740a3191e56c60400f3ff18988d"
      ],
      "author": {
        "name": "Petr Simecek",
        "email": "lamparna@gmail.com",
        "time": "Wed Jan 07 12:22:59 2026 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Wed Jan 07 12:25:19 2026 +0000"
      },
      "message": "parser: Fix infinite loop in xmlCtxtParseContent\n\nThe loop to find an element/document ancestor uses \"cur \u003d node-\u003eparent\"\nas the iterator instead of \"cur \u003d cur-\u003eparent\". This causes an infinite\nloop when the immediate parent is not an element/document/html node\n(e.g., when the node\u0027s parent is an entity reference).\n\nFix by iterating with cur-\u003eparent to properly walk up the ancestor chain.\n\nAdd regression test to testparser.c.\n\nFixes: 4f329dc5 (\"parser: Implement xmlCtxtParseContent\")\n"
    },
    {
      "commit": "f75abfcaa419a740a3191e56c60400f3ff18988d",
      "tree": "28d387c909bc0d772d8ddf1e12f3bf9fa717247c",
      "parents": [
        "1961208e958ca22f80a0b4e4c9d71cfa050aa982"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Fri Dec 19 11:02:18 2025 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Jan 05 09:30:19 2026 +0000"
      },
      "message": "catalog: Ignore repeated nextCatalog entries\n\nThis patch makes the catalog parsing to ignore repeated entries of\nnextCatalog with the same value.\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/issues/1019\n"
    },
    {
      "commit": "1961208e958ca22f80a0b4e4c9d71cfa050aa982",
      "tree": "51f0e8a890d7cd4466f21c25dec5cf40fbe8705d",
      "parents": [
        "eae9291aa73907694dd3a4274d306e31217e746e"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Wed Dec 17 15:24:08 2025 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Jan 05 09:30:19 2026 +0000"
      },
      "message": "catalog: prevent inf recursion in xmlCatalogXMLResolveURI\n\nFix https://gitlab.gnome.org/GNOME/libxml2/-/issues/1018\n"
    },
    {
      "commit": "eae9291aa73907694dd3a4274d306e31217e746e",
      "tree": "cca36d1b5a4daa626eb880768cec8a60f3f9414a",
      "parents": [
        "9827e6e44652555992e168609abf94e4237ca944"
      ],
      "author": {
        "name": "Nathan",
        "email": "nathan.shain@echohq.com",
        "time": "Wed Sep 10 18:11:50 2025 +0300"
      },
      "committer": {
        "name": "Nathan",
        "email": "nathan.shain@echohq.com",
        "time": "Sun Jan 04 16:01:55 2026 +0200"
      },
      "message": "fix: Prevent infinite recursion in xmlCatalogListXMLResolve\n"
    },
    {
      "commit": "9827e6e44652555992e168609abf94e4237ca944",
      "tree": "47c09a6b2e03133db66793f6107c2c5273061312",
      "parents": [
        "e118d6376c4a3d4a9af691f682e32ffa06adab83"
      ],
      "author": {
        "name": "Sandino Araico Sanchez",
        "email": "sandino@sandino.net",
        "time": "Sat Dec 20 18:18:24 2025 -0600"
      },
      "committer": {
        "name": "Iván Chavero",
        "email": "ichavero@chavero.com.mx",
        "time": "Mon Dec 22 14:45:41 2025 -0600"
      },
      "message": "Note on xmlTextWriterWriteBase64 about no safety check\n"
    },
    {
      "commit": "e118d6376c4a3d4a9af691f682e32ffa06adab83",
      "tree": "fd0fb9743a1947ec5beeab53d9bea6df46f0f6c1",
      "parents": [
        "84b8530d852e51e7ccab1e2b4aef698f611486fb"
      ],
      "author": {
        "name": "Michael Heilmann",
        "email": "contact@michaelheilmann.com",
        "time": "Mon Dec 15 10:45:16 2025 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Dec 22 09:10:54 2025 +0000"
      },
      "message": "update `CMakeLists`\n\nbefore:\n- private *.h files were not displayed in Visual C++\n- source files were not grouped in Visual C++\n\nnow:\n- private *.h files are displayed in Visual C++\n- source files are grouped in Visual C++\n"
    },
    {
      "commit": "84b8530d852e51e7ccab1e2b4aef698f611486fb",
      "tree": "3c4a6e9c0bed89510a2e927a89599901801d0c5a",
      "parents": [
        "3b2d4638ecae0ddc5febd035eede719b7bc46578"
      ],
      "author": {
        "name": "Iván Chavero",
        "email": "ichavero@chavero.com.mx",
        "time": "Sun Sep 28 13:57:28 2025 -0600"
      },
      "committer": {
        "name": "Daniel García Moreno",
        "email": "dani@danigm.net",
        "time": "Mon Dec 22 09:51:22 2025 +0100"
      },
      "message": "Fix xmlOutputBufferGetContent output when encoder is set.\n\nThe xmlOutputBufferGetContent function only returns the buffer attribute\nof the _xmlOutputBuffer struct.\nWhen the `encoder` attribute is set the content is stored in the `conv`\nattribute after conversions are performed and the `buffer` attribute is\nemptied. This causes the xmlOutputBufferGetContent to always return\nempty when the `encoder` is set.\n\nThis patch fixes the function by returning the `conv` attribute when the\nencoder is set.\n\nFixes: #991\n"
    },
    {
      "commit": "3b2d4638ecae0ddc5febd035eede719b7bc46578",
      "tree": "9ff1826fc5bf36d902bd20013de99cb93fb19524",
      "parents": [
        "cee7107a1bf8cd01db1fe1e5a02005ce56ff69f9"
      ],
      "author": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue Dec 16 07:41:35 2025 +0100"
      },
      "committer": {
        "name": "Daniel Garcia Moreno",
        "email": "daniel.garcia@suse.com",
        "time": "Tue Dec 16 07:41:35 2025 +0100"
      },
      "message": "Add /build and /install directories to gitignore\n"
    },
    {
      "commit": "cee7107a1bf8cd01db1fe1e5a02005ce56ff69f9",
      "tree": "00feae2da45df51e31a941c02cbde7cb818f3cb3",
      "parents": [
        "aef94414c6ff31a6aef44e960b654b317c1f9d10"
      ],
      "author": {
        "name": "Peter Fordham",
        "email": "peter.fordham@gmail.com",
        "time": "Fri Dec 12 20:00:25 2025 -0800"
      },
      "committer": {
        "name": "Peter Fordham",
        "email": "peter.fordham@gmail.com",
        "time": "Mon Dec 15 11:48:41 2025 -0800"
      },
      "message": "writer: Add a few extra NULL checks to avoid memory leaks on corrupt writer path.\n"
    },
    {
      "commit": "aef94414c6ff31a6aef44e960b654b317c1f9d10",
      "tree": "138f49abddf5411f3fb9a342b9871de247dcf31b",
      "parents": [
        "98194640b80a8d04b5af22b077ffd8368a9568cf"
      ],
      "author": {
        "name": "Peter Fordham",
        "email": "peter.fordham@gmail.com",
        "time": "Sun Dec 14 21:09:21 2025 -0800"
      },
      "committer": {
        "name": "Peter Fordham",
        "email": "peter.fordham@gmail.com",
        "time": "Sun Dec 14 21:09:21 2025 -0800"
      },
      "message": "Initialize pointer incase we end up skipping the while loop completely.\n"
    },
    {
      "commit": "98194640b80a8d04b5af22b077ffd8368a9568cf",
      "tree": "daba6237bc5037b6dac15297ec85cbec3ef52c6b",
      "parents": [
        "bcaae46a31060a650164511dbe3f8fb45241f2b4"
      ],
      "author": {
        "name": "Niels Dossche",
        "email": "7771979+nielsdos@users.noreply.github.com",
        "time": "Thu Sep 04 21:13:24 2025 +0200"
      },
      "committer": {
        "name": "Iván Chavero",
        "email": "ichavero@chavero.com.mx",
        "time": "Fri Dec 12 14:26:11 2025 -0600"
      },
      "message": "Fix memory leak of prefix in xmlTextWriterStartElementNS()\n"
    }
  ],
  "next": "bcaae46a31060a650164511dbe3f8fb45241f2b4"
}
