◐ Shell
clean mode source ↗

closes bpo-38402: Check error of primitive crypt/crypt_r. by chibby0ne · Pull Request #16599 · python/cpython

Expand Up @@ -10,6 +10,7 @@ else: raise ImportError("The required _crypt module was not built as part of CPython")
import errno import string as _string from random import SystemRandom as _SystemRandom from collections import namedtuple as _namedtuple Expand Down Expand Up @@ -88,7 +89,14 @@ def _add_method(name, *args, rounds=None): method = _Method(name, *args) globals()['METHOD_' + name] = method salt = mksalt(method, rounds=rounds) result = crypt('', salt) result = None try: result = crypt('', salt) except OSError as e: # Not all libc libraries support all encryption methods. if e.errno == errno.EINVAL: return False raise if result and len(result) == method.total_size: methods.append(method) return True Expand Down