Serhiy Storchaka <storchaka+cpyt...@gmail.com> added the comment:

I have simplified the PR. Removed the complex code for detecting pickles 
written to files in text mode on Windows and for adding optional marks for 
correct detecting. Currently it does only two things:

* Escapes \r, \0 and \x1a (end-of-file on Windows) when pickle unicode. This 
allows pickles dumped to a file in binary mode (or on non-Windows, or in Python 
3) be correctly loaded from a file opened from a file in text mode on Windows.

Currently, dumping to a file in text mode works most time, except on Windows, 
when the unicode string ends with \r or contains \x1a (not sure about \0, it 
was added just for the case). Since the data is only corrupted in special 
cases, this likely is not tested, and the user code can open files in text 
(default) mode without noticing a bug, until once a malicious user will provide 
a bad Unicode string.

* Produces a deprecation warning or even a ValueError in cases when writing to 
a file in text mode can cause problems. This will help to notice the problem 
earlier.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue31829>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to