Borrow from https://trac.ffmpeg.org/ticket/97 --- python/pyglue.c 2025-02-06 14:31:54 +++ python/pyglue.c 2025-04-19 19:51:44.000000000 +0800 @@ -548,7 +548,7 @@ ret = talloc_crypt_blob(frame, phrase, setting, &hash); if (ret != 0) { const char *errstr = talloc_crypt_errstring(frame, ret); - if (ret == EINVAL || ret == ERANGE || ret == ENOTRECOVERABLE) { + if (ret == EINVAL || ret == ERANGE) { PyErr_Format(PyExc_ValueError, "could not crypt(): %s", errstr); --- lib/util/util_crypt.c 2025-02-06 14:31:54 +++ lib/util/util_crypt.c 2025-04-19 19:51:37.000000000 +0800 @@ -66,7 +66,7 @@ if (hash == NULL || hash[0] == '*') { if (ret == 0) { /* this is annoying */ - ret = ENOTRECOVERABLE; + ret = EINVAL; } } if (ret != 0) { @@ -111,7 +111,7 @@ mem_ctx, "Password exceeds maximum length allowed for crypt() hashing"); } - if (error == ENOTRECOVERABLE) { + if (error == EINVAL) { /* probably weird RHEL7 crypt, see crypt_as_best_we_can() */ goto unknown; }