diff options
author | Stefano Rivera <stefano@rivera.za.net> | 2020-10-09 23:47:58 -0700 |
---|---|---|
committer | Stefano Rivera <stefano@rivera.za.net> | 2020-10-09 23:47:58 -0700 |
commit | 561a10722008ff11486eb312a49e9e109f775115 (patch) | |
tree | 4f65b1fc7064dfeb07b7542a23dae3431fb4eb2d /lib_pypy | |
parent | bpo-30058: Fixed buffer overflow in select.kqueue.control(). (diff) | |
parent | typo (diff) | |
download | pypy-561a10722008ff11486eb312a49e9e109f775115.tar.gz pypy-561a10722008ff11486eb312a49e9e109f775115.tar.bz2 pypy-561a10722008ff11486eb312a49e9e109f775115.zip |
merge default into stdlib-2.7.18-3
Diffstat (limited to 'lib_pypy')
-rw-r--r-- | lib_pypy/crypt/__init__.py | 16 | ||||
-rw-r--r-- | lib_pypy/pypy_tools/build_cffi_imports.py | 7 |
2 files changed, 17 insertions, 6 deletions
diff --git a/lib_pypy/crypt/__init__.py b/lib_pypy/crypt/__init__.py index a5790e83ad..83e516011f 100644 --- a/lib_pypy/crypt/__init__.py +++ b/lib_pypy/crypt/__init__.py @@ -4,6 +4,12 @@ CFFI based implementation of the crypt module import sys import cffi +import thread +_lock = thread.allocate_lock() + +try: from __pypy__ import builtinify +except ImportError: builtinify = lambda f: f + ffi = cffi.FFI() ffi.cdef('char *crypt(char *word, char *salt);') @@ -14,8 +20,10 @@ except OSError: raise ImportError('crypt not available') +@builtinify def crypt(word, salt): - res = lib.crypt(word, salt) - if not res: - return None - return ffi.string(res) + with _lock: + res = lib.crypt(word, salt) + if not res: + return None + return ffi.string(res) diff --git a/lib_pypy/pypy_tools/build_cffi_imports.py b/lib_pypy/pypy_tools/build_cffi_imports.py index c7005f6461..12e791d695 100644 --- a/lib_pypy/pypy_tools/build_cffi_imports.py +++ b/lib_pypy/pypy_tools/build_cffi_imports.py @@ -130,8 +130,11 @@ def _build_dependency(name, patches=[]): print('unpacking archive', archive, file=sys.stderr) _unpack_tarfile(archive, deps_destdir) - sources = os.path.join(deps_destdir, os.path.basename(archive)[:-7]) - + sources = os.path.join( + deps_destdir, + os.path.basename(archive).rsplit('.', 2)[0], + ) + # apply any patches if patches: for patch in patches: |