This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author EdSchouten
Recipients EdSchouten
Date 2016-10-22.07:52:54
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1477122775.81.0.204871394378.issue28503@psf.upfronthosting.co.za>
In-reply-to
Content
The '_crypt' module provides a binding to the C crypt(3) function. It is used by the crypt.crypt() function.

Looking at the C code, there are a couple of things we can improve:

- Because crypt() only depends on primitive C types, we currently get away with calling it without it being declared. Ensure that we include <unistd.h>, which is the POSIX header file declaring this.

- The disadvantage of crypt() is that it's thread-unsafe. Systems like Linux and recent versions of FreeBSD nowadays provide crypt_r() as a replacement. This function allows you to pass in a 'crypt_data' object that will hold the resulting string for you. Extend the code to use this function when available.

This patch is actually needed to make this module build on CloudABI (https://mail.python.org/pipermail/python-dev/2016-July/145708.html). CloudABI's C library doesn't provide any thread-unsafe functions, meaning that crypt_r() is the only way you can crypt passwords.
History
Date User Action Args
2016-10-22 07:52:55EdSchoutensetrecipients: + EdSchouten
2016-10-22 07:52:55EdSchoutensetmessageid: <1477122775.81.0.204871394378.issue28503@psf.upfronthosting.co.za>
2016-10-22 07:52:55EdSchoutenlinkissue28503 messages
2016-10-22 07:52:55EdSchoutencreate