Commit f895307a authored by Guido van Rossum's avatar Guido van Rossum

Make sure hexdigest() returns str, not str8.

parent dc12288e
...@@ -127,17 +127,10 @@ EVP_hexdigest(EVPobject *self, PyObject *unused) ...@@ -127,17 +127,10 @@ EVP_hexdigest(EVPobject *self, PyObject *unused)
EVP_MD_CTX_cleanup(&temp_ctx); EVP_MD_CTX_cleanup(&temp_ctx);
/* Create a new string */ /* Allocate a new buffer */
/* NOTE: not thread safe! modifying an already created string object */ hex_digest = PyMem_Malloc(digest_size * 2 + 1);
/* (not a problem because we hold the GIL by default) */ if (!hex_digest)
retval = PyString_FromStringAndSize(NULL, digest_size * 2); return PyErr_NoMemory();
if (!retval)
return NULL;
hex_digest = PyString_AS_STRING(retval);
if (!hex_digest) {
Py_DECREF(retval);
return NULL;
}
/* Make hex version of the digest */ /* Make hex version of the digest */
for(i=j=0; i<digest_size; i++) { for(i=j=0; i<digest_size; i++) {
...@@ -149,6 +142,8 @@ EVP_hexdigest(EVPobject *self, PyObject *unused) ...@@ -149,6 +142,8 @@ EVP_hexdigest(EVPobject *self, PyObject *unused)
c = (c>9) ? c+'a'-10 : c + '0'; c = (c>9) ? c+'a'-10 : c + '0';
hex_digest[j++] = c; hex_digest[j++] = c;
} }
retval = PyUnicode_FromStringAndSize(hex_digest, digest_size * 2);
PyMem_Free(hex_digest);
return retval; return retval;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment