git: d5b2d60fc769 - main - textproc/py-pylibxml2: rm patch that scans garbage

From: Don Lewis <truckman_at_FreeBSD.org>
Date: Fri, 23 May 2025 22:17:21 UTC
The branch main has been updated by truckman:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d5b2d60fc76964a3e5b8f50d2992bd751f688f04

commit d5b2d60fc76964a3e5b8f50d2992bd751f688f04
Author:     Don Lewis <truckman@FreeBSD.org>
AuthorDate: 2025-05-23 21:48:34 +0000
Commit:     Don Lewis <truckman@FreeBSD.org>
CommitDate: 2025-05-23 22:17:11 +0000

    textproc/py-pylibxml2: rm patch that scans garbage
    
    Remove a local patch that scans stack garbage for a pattern and then uses
    the pointer after the array has been filled with actual data.  This can
    cause random segfaults.
    
    The patch is under textproc/libxml2, but the patched file is only used by
    textproc/py-pylibxml2.
    
    The UTF-8 issue this was intended to fix was fixed upstream in a more
    comprehensive way in 2.11.0 with this commit:
    https://gitlab.gnome.org/GNOME/libxml2/-/commit/76c6da420923f2721a2e16adfcef8707a2454a1b
    
    PR:             286439 279034
    Approved by:    desktop (makc)
    Tested by:      vvd
    MFH:            2025Q2
---
 textproc/libxml2/files/patch-python_libxml.c | 35 ----------------------------
 textproc/py-libxml2/Makefile                 |  2 +-
 2 files changed, 1 insertion(+), 36 deletions(-)

diff --git a/textproc/libxml2/files/patch-python_libxml.c b/textproc/libxml2/files/patch-python_libxml.c
deleted file mode 100644
index 7bbc98d75033..000000000000
--- a/textproc/libxml2/files/patch-python_libxml.c
+++ /dev/null
@@ -1,35 +0,0 @@
---- python/libxml.c.orig	2023-08-11 20:30:35 UTC
-+++ python/libxml.c
-@@ -1606,12 +1606,19 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNUSED void *ctx,
-     PyObject *message;
-     PyObject *result;
-     char str[1000];
-+    unsigned char *ptr = (unsigned char *)str;
- 
- #ifdef DEBUG_ERROR
-     printf("libxml_xmlErrorFuncHandler(%p, %s, ...) called\n", ctx, msg);
- #endif
- 
-+#if PY_MAJOR_VERSION >= 3
-+    /* Ensure the error string doesn't start at UTF8 continuation. */
-+    while (*ptr && (*ptr & 0xc0) == 0x80)
-+        ptr++;
-+#endif
- 
-+
-     if (libxml_xmlPythonErrorFuncHandler == NULL) {
-         va_start(ap, msg);
-         vfprintf(stderr, msg, ap);
-@@ -1625,9 +1632,11 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNUSED void *ctx,
-         list = PyTuple_New(2);
-         PyTuple_SetItem(list, 0, libxml_xmlPythonErrorFuncCtxt);
-         Py_XINCREF(libxml_xmlPythonErrorFuncCtxt);
--        message = libxml_charPtrConstWrap(str);
-+        message = libxml_charPtrConstWrap(ptr);
-         PyTuple_SetItem(list, 1, message);
-         result = PyObject_CallObject(libxml_xmlPythonErrorFuncHandler, list);
-+        /* Forget any errors caused in the error handler. */
-+        PyErr_Clear();
-         Py_XDECREF(list);
-         Py_XDECREF(result);
-     }
diff --git a/textproc/py-libxml2/Makefile b/textproc/py-libxml2/Makefile
index 84796bac21b3..7633fdebb4a1 100644
--- a/textproc/py-libxml2/Makefile
+++ b/textproc/py-libxml2/Makefile
@@ -1,4 +1,4 @@
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	textproc gnome python
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}