Yes, that's what __new__ / tp_new is for! Thanks for finding this. On Thu, Oct 30, 2008 at 7:20 AM, Christian Heimes <[EMAIL PROTECTED]> wrote: > 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 > > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > http://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: > http://mail.python.org/mailman/options/python-dev/guido%40python.org >
-- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com