On Tue, Nov 05, 2013 at 05:00:53PM +0100, Giuseppe Scrivano wrote:
Martin Kletzander <mkletzan(a)redhat.com> writes:
> Not that it has any connection to your patch, but I noticed that,
> somewhere, we check the return value of PyList_New(), but somewhere we
> don't... I guess we should do it everywhere, shouldn't we?
>
> ... thinking about it, I searched through the code and
> PyList_SetItem() properly errors out when 'op' (its first param) is
> NULL, but PyList_SET_ITEM() will just segfault. I think we should
> properly handle allocation errors before optimizing it this way.
Great you have noticed it. I expected PyList_SetItem to crash too when
the list == NULL.
Oh, you're right. I was blinded by the fact, that PyList_SetItem()
checks whether the 'op' is a list and I was under the impression that
PyList_Check(op) will catch that. This has not yet changed (I checked
3.3.2), so you're right, the fact that we'll use PyList_SET_ITEM won't
change a thing. I'll continue with the review in a minute. Thanks
for the idea.
Martin