|
Lines 68-80
Link Here
|
| 68 |
static char *keywords[] = { "password", "salt", NULL }; |
68 |
static char *keywords[] = { "password", "salt", NULL }; |
| 69 |
char *password = NULL, *salt = NULL; |
69 |
char *password = NULL, *salt = NULL; |
| 70 |
char *ret; |
70 |
char *ret; |
|
|
71 |
char *password_copy; |
| 72 |
char *salt_copy; |
| 71 |
|
73 |
|
| 72 |
if (!PyArg_ParseTupleAndKeywords(args, kw_args, "ss:hashpw", keywords, |
74 |
if (!PyArg_ParseTupleAndKeywords(args, kw_args, "ss:hashpw", keywords, |
| 73 |
&password, &salt)) |
75 |
&password, &salt)) |
| 74 |
return NULL; |
76 |
return NULL; |
| 75 |
|
77 |
|
| 76 |
char *password_copy = strdup(password); |
78 |
password_copy = strdup(password); |
| 77 |
char *salt_copy = strdup(salt); |
79 |
salt_copy = strdup(salt); |
| 78 |
|
80 |
|
| 79 |
Py_BEGIN_ALLOW_THREADS; |
81 |
Py_BEGIN_ALLOW_THREADS; |
| 80 |
ret = pybc_bcrypt(password_copy, salt_copy); |
82 |
ret = pybc_bcrypt(password_copy, salt_copy); |