Mercurial > hg
view tests/test-check-pyflakes.t @ 38335:ae7f27867c2a stable
manifest: fix possible SEGV caused by uninitialized lazymanifest fields
Before, uninitialized self->pydata would be passed to lazymanifest_dealloc()
on OOM, and Py_DECREF(self->pydata) would crash if we were unlucky.
It's still wrong to do malloc() thingy in tp_init because __init__() may be
called more than once [1], but I don't want to go a step further in stable
branch.
[1]: https://docs.python.org/2/c-api/typeobj.html#c.PyTypeObject.tp_new
"The tp_new function should ... do only as much further initialization as
is absolutely necessary. Initialization that can safely be ignored or
repeated should be placed in the tp_init handler."
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Fri, 15 Jun 2018 22:16:58 +0900 |
parents | 3ccaf995f549 |
children | 094d0f4a8edd |
line wrap: on
line source
#require test-repo pyflakes hg10 $ . "$TESTDIR/helpers-testrepo.sh" run pyflakes on all tracked files ending in .py or without a file ending (skipping binary file random-seed) $ cat > test.py <<EOF > print(undefinedname) > EOF $ pyflakes test.py 2>/dev/null | "$TESTDIR/filterpyflakes.py" test.py:1: undefined name 'undefinedname' $ cd "`dirname "$TESTDIR"`" $ testrepohg locate 'set:**.py or grep("^#!.*python")' \ > -X hgext/fsmonitor/pywatchman \ > -X mercurial/pycompat.py -X contrib/python-zstandard \ > -X mercurial/thirdparty/cbor \ > -X mercurial/thirdparty/concurrent \ > -X mercurial/thirdparty/zope \ > 2>/dev/null \ > | xargs pyflakes 2>/dev/null | "$TESTDIR/filterpyflakes.py"