gh-146196: Fix Undefined Behavior in _PyUnicodeWriter_WriteASCIIString() (#146201)
Avoid calling memcpy(data + writer->pos, NULL, 0)
which has an undefined behavior.
(cherry picked from commit
cd10a2e65c25682095f6ee4a9b9a181938a50d2e)
Co-authored-by: Shamil <ashm.tech@proton.me>
--- /dev/null
+Fix potential Undefined Behavior in :c:func:`PyUnicodeWriter_WriteASCII` by
+adding a zero-length check. Patch by Shamil Abdulaev.
if (len == -1)
len = strlen(ascii);
+ if (len == 0) {
+ return 0;
+ }
+
assert(ucs1lib_find_max_char((const Py_UCS1*)ascii, (const Py_UCS1*)ascii + len) < 128);
if (writer->buffer == NULL && !writer->overallocate) {