Skip to content

Commit e287b88

Browse files
authored
Merge branch 'main' into bugfix/pythongh-127085
2 parents d4dc897 + a880358 commit e287b88

4 files changed

Lines changed: 11 additions & 2 deletions

File tree

‎Doc/Makefile‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ pydoc-topics: build
144144

145145
.PHONY: gettext
146146
gettext: BUILDER = gettext
147-
gettext: SPHINXOPTS += -d build/doctrees-gettext
147+
gettext: override SPHINXOPTS := -d build/doctrees-gettext $(SPHINXOPTS)
148148
gettext: build
149149

150150
.PHONY: htmlview

‎Lib/multiprocessing/connection.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -963,7 +963,7 @@ def answer_challenge(connection, authkey: bytes):
963963
f'Protocol error, expected challenge: {message=}')
964964
message = message[len(_CHALLENGE):]
965965
if len(message) < _MD5ONLY_MESSAGE_LENGTH:
966-
raise AuthenticationError('challenge too short: {len(message)} bytes')
966+
raise AuthenticationError(f'challenge too short: {len(message)} bytes')
967967
digest = _create_response(authkey, message)
968968
connection.send_bytes(digest)
969969
response = connection.recv_bytes(256) # reject large message

‎Lib/test/test_interpreters/test_api.py‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1649,6 +1649,10 @@ def test_set___main___attrs(self):
16491649
self.assertIs(after2, None)
16501650
self.assertEqual(after3.type.__name__, 'AssertionError')
16511651

1652+
with self.assertRaises(ValueError):
1653+
# GH-127165: Embedded NULL characters broke the lookup
1654+
_interpreters.set___main___attrs(interpid, {"\x00": 1})
1655+
16521656
with self.subTest('from C-API'):
16531657
with self.interpreter_from_capi() as interpid:
16541658
with self.assertRaisesRegex(InterpreterError, 'unrecognized'):

‎Python/crossinterp.c‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,11 @@ _copy_string_obj_raw(PyObject *strobj, Py_ssize_t *p_size)
342342
return NULL;
343343
}
344344

345+
if (size != (Py_ssize_t)strlen(str)) {
346+
PyErr_SetString(PyExc_ValueError, "found embedded NULL character");
347+
return NULL;
348+
}
349+
345350
char *copied = PyMem_RawMalloc(size+1);
346351
if (copied == NULL) {
347352
PyErr_NoMemory();

0 commit comments

Comments
 (0)