Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32k
Description
According toPEP 293, the codec error handling callback should either raise an exception or return a pair(replacement, newpos)
.newpos
specifies a new position within object, where the encoder/decoder will continue encoding/decoding. Negative values fornewpos
are treated as being relative to end of object. PEP 293 does not specify the bound ofnewpos
, and this is a problem.
Ifnewpos == start
, the codec will not advance. Ifreplacement
is empty, it will just hang in an infinite loop, calling the callback again and again. Ifreplacement
is not empty, it will additionally add it in an internal buffer, and finally, after long time, you will get a MemoryError. Ifnewpos < start
, the behavior may be even more weird.
Before fixing other errors in#81000 it even caused a crash, but now it is only an infinite loop.
I propose to limit the returning value by range[start+1, len(object)]
.
Metadata
Metadata
Assignees
Projects
Status