[pypy-issue] Issue #2615: This looks like a thread-safety bug causing memory corruption in pypy 3 ssl (pypy/pypy)

Nathaniel Smith issues-reply at bitbucket.org
Sun Jul 23 02:08:54 EDT 2017


New issue 2615: This looks like a thread-safety bug causing memory corruption in pypy 3 ssl
https://bitbucket.org/pypy/pypy/issues/2615/this-looks-like-a-thread-safety-bug

Nathaniel Smith:

Filing on behalf of @yuvipanda, who's having some trouble with bitbucket...

The traceback here:
    https://github.com/kubernetes-client/python-base/issues/23
seems to indicate that occasionally, pypy 3's `SSLSocket.getpeercert` method is returning a corrupted string like `10.0.0.1\x005.1` for one of the subjectAltName fields, instead of the correct `10.0.0.1`.

Given that symptom, and that it's observed to happen occasionally when running a stress-test that uses threads, I would suspect some sort of data race happening inside `lib_pypy/_cffi_ssl/_stdssl/certificate.py:_get_peer_alt_names`.

That function seems to use a bunch of OpenSSL functions whose docs say things like "The returned pointer is an internal value which must not be freed up."...




More information about the pypy-issue mailing list