[issue23655] Memory corruption using pickle over pipe to subprocess

John Nagle report at bugs.python.org
Fri Mar 13 20:48:31 CET 2015


John Nagle added the comment:

> Or just use pickle._Pickler instead of pickle.Pickler and like 
> (implementation detail!).

Tried that.  Changed my own code as follows:

25a26
> 
71,72c72,73
<         self.reader = pickle.Unpickler(self.proc.stdout)    # set up reader
<         self.writer = pickle.Pickler(self.proc.stdin,kpickleprotocolversion)
---
>         self.reader = pickle._Unpickler(self.proc.stdout)    # set up reader
>         self.writer = pickle._Pickler(self.proc.stdin,kpickleprotocolversion
125,126c126,127
<         self.reader = pickle.Unpickler(self.datain)     # set up reader
<         self.writer = pickle.Pickler(self.dataout,kpickleprotocolversion)   
---
>         self.reader = pickle._Unpickler(self.datain)     # set up reader
>         self.writer = pickle._Pickler(self.dataout,kpickleprotocolversion)  

Program runs after those changes.

So it looks like CPickle has a serious memory corruption problem.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue23655>
_______________________________________


More information about the Python-bugs-list mailing list