[Python-Dev] Changing string constants to byte arrays ([Python-checkins] r55119 (original) (raw)

[Python-Dev] Changing string constants to byte arrays ([Python-checkins] r55119 - in python/branches/py3k-struni/Lib: codecs.py test/test_codecs.py)

Walter Dörwald walter at livinglogic.de
Fri May 4 16:29:15 CEST 2007


M.-A. Lemburg wrote:

Hi Walter,

if the bytes type does turn out to be a mutable type as suggested in PEP 358,

it is.

then please make sure that no code (C code in particular), relies on the constantness of these byte objects.

This is especially important when it comes to codecs, since the error callback logic would allow the callback to manipulate the byte object contents and length without the codec taking note of this change.

Encoding is not a problem because the error callback never sees or returns a byte object.

However decoding is a problem. After the callback returns the codec has to recalculate it's variables.

I expect there to be other places in the interpreter which would break as well.

Otherwise, you end up opening the door for segfaults and easy DOS attacks on Python3.

True, registering an even callback could crash the interpreter.

Seems we have to update all decoding functions.

Servus, Walter



More information about the Python-Dev mailing list