From 19f7f7235cb9501008c5661b821a5efacef917ed Mon Sep 17 00:00:00 2001 From: Pjotr Prins Date: Fri, 3 Apr 2026 09:12:33 +0200 Subject: Patch (edirect) to avoid panic during indexing --- contrib/patches/edirect-xml-bounds-check.patch | 36 ++++++++++++++++++++++++++ guix.scm | 4 ++- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 contrib/patches/edirect-xml-bounds-check.patch diff --git a/contrib/patches/edirect-xml-bounds-check.patch b/contrib/patches/edirect-xml-bounds-check.patch new file mode 100644 index 0000000..7e369ca --- /dev/null +++ b/contrib/patches/edirect-xml-bounds-check.patch @@ -0,0 +1,36 @@ +--- a/eutils/xml.go 2026-01-08 20:01:51.000000000 +0000 ++++ b/eutils/xml.go 2026-04-03 06:53:30.494928480 +0000 +@@ -1791,14 +1791,23 @@ + + // at start of end tag + idx++ ++ if idx >= txtlen { ++ return NOTAG, NONE, "", "", idx ++ } + start = idx + ch = text[idx] + // expect legal first character of element + if inFirst[ch] { + idx++ ++ if idx >= txtlen { ++ return NOTAG, NONE, "", "", idx ++ } + ch = text[idx] + for inElement[ch] { + idx++ ++ if idx >= txtlen { ++ return NOTAG, NONE, "", "", idx ++ } + ch = text[idx] + } + str := text[start:idx] +@@ -1806,6 +1815,9 @@ + // skip past unexpected blanks + for inBlank[ch] { + idx++ ++ if idx >= txtlen { ++ return NOTAG, NONE, "", "", idx ++ } + ch = text[idx] + } + if ch != '>' { diff --git a/guix.scm b/guix.scm index 9b0f382..43c3f77 100644 --- a/guix.scm +++ b/guix.scm @@ -141,7 +141,9 @@ GeneCup with four gene symbols (gria1, crhr1, drd2, and penk).") (snippet '(begin (delete-file "Mozilla-CA.tar.gz") - (delete-file "cacert.pem"))))) + (delete-file "cacert.pem"))) + (patches + (list (local-file "contrib/patches/edirect-xml-bounds-check.patch"))))) (build-system gnu-build-system) (arguments (list -- cgit 1.4.1