[Python-Dev] Proper initialization of structs

Christian Heimes lists at cheimes.de
Thu Oct 30 15:20:20 CET 2008


I like to raise attention for a problem revealed by 
http://bugs.python.org/issue4237

---
The bug was caused by a design flaw -- which was partly my fault. Some
elements of the PyFileIOObject struct were initialized in __new__ while
other parts were initialized in __init__. I've moved the initialization
to __new__.

We should add a rule that all struct members must be properly
initialized in __new__. In the past Victor's fuzzying tool has revealed
several crashers related to similar design flaws.

I'm raising the severity of the bug to release blocker because I can't
predict if the problem can be abused to crash the interpreter. We should
also review all __new__ and __init__ methods of objects and extension
modules for similar issues.
---

The same design flaw was responsible for bugs like the pickle crasher 
http://bugs.python.org/issue3664. I like to establish a rule that *all* 
struct members must be initialized properly in the type's tp_new function.

Comments?

Christian



More information about the Python-Dev mailing list