Both BSD and POSIX crypt() may return NULL on failure, so we have to
check for that and fail with PAM_SERVICE_ERR before proceeding.
Note: CVE-2026-123158 exploits dubious implementation of crypt() in musl.
Although we are not directly affected by this bug, we have to prevent
any possibility to crypt() misuse.