external/python3/ubsan.patch.0 |    9 +++++++++
 1 file changed, 9 insertions(+)

New commits:
commit 2b86e8b371bc1a369be03925c8097ba9abe793c4
Author:     Stephan Bergmann <[email protected]>
AuthorDate: Fri Dec 19 13:05:43 2025 +0100
Commit:     Stephan Bergmann <[email protected]>
CommitDate: Fri Dec 19 15:19:03 2025 +0100

    external/python3: Silence more UBSan "applying zero offset to null pointer"
    
    > Objects/listobject.c:1370:37: runtime error: applying zero offset to null 
pointer
    >     #0 0x7f38b863523a in list_extend_dictitems 
/workdir/UnpackedTarball/python3/Objects/listobject.c:1370:37
    >     #1 0x7f38b862a555 in _list_extend 
/workdir/UnpackedTarball/python3/Objects/listobject.c:1435:15
    >     #2 0x7f38b8651977 in list___init___impl 
/workdir/UnpackedTarball/python3/Objects/listobject.c:3467:13
    >     #3 0x7f38b86305d3 in list_vectorcall 
/workdir/UnpackedTarball/python3/Objects/listobject.c:3491:13
    [...]
    
    as seen while building 
workdir/XcuFilterFiltersTarget/fcfg_impress_filters.xcu
    etc. at <https://ci.libreoffice.org/job/lo_ubsan/3756/>.
    
    (Same as 314c4b5ef949f5bb1a4f13048726c440e556ba67 "external/python3: Silence
    UBSan 'applying zero offset to null pointer'", this only gets reported with 
old
    Clang prior to Clang 20
    
<https://github.com/llvm/llvm-project/commit/4847395c5459f9c476808f9337abdae7fbd78a23>
    "[Clang] Adjust pointer-overflow sanitizer for N3322 (#120719)".)
    
    Change-Id: I15129f5fa3eb3c0f92d6e3a80f914f63e12efdb0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195894
    Reviewed-by: Stephan Bergmann <[email protected]>
    Tested-by: Jenkins

diff --git a/external/python3/ubsan.patch.0 b/external/python3/ubsan.patch.0
index d7807a6e7e5a..65f39cd1ea39 100644
--- a/external/python3/ubsan.patch.0
+++ b/external/python3/ubsan.patch.0
@@ -41,6 +41,15 @@
      while (_PySet_NextEntryRef((PyObject *)other, &setpos, &key, &hash)) {
          FT_ATOMIC_STORE_PTR_RELEASE(*dest, key);
          dest++;
+@@ -1367,7 +1367,7 @@
+         return -1;
+     }
+ 
+-    PyObject **dest = self->ob_item + m;
++    PyObject **dest = m == 0 ? self->ob_item : self->ob_item + m;
+     Py_ssize_t pos = 0;
+     Py_ssize_t i = 0;
+     PyObject *key, *value;
 --- Parser/lexer/buffer.c
 +++ Parser/lexer/buffer.c
 @@ -27,8 +27,8 @@

Reply via email to