Fail if mlock fails

This commit is contained in:
Kovid Goyal 2022-08-04 11:16:36 +05:30
parent 183a31c884
commit 153064ef3a
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -88,7 +88,7 @@ elliptic_curve_key_get_private(EllipticCurveKey *self, void UNUSED *closure) {
if (1 != EVP_PKEY_get_raw_private_key(self->key, NULL, &len)) return set_error_from_openssl("Could not get public key from EVP_PKEY");
PyObject *ans = PyBytes_FromStringAndSize(NULL, len);
if (!ans) return NULL;
mlock(PyBytes_AS_STRING(ans), len);
if (mlock(PyBytes_AS_STRING(ans), len) != 0) { Py_CLEAR(ans); return PyErr_SetFromErrno(PyExc_OSError); }
if (1 != EVP_PKEY_get_raw_private_key(self->key, (unsigned char*)PyBytes_AS_STRING(ans), &len)) { Py_CLEAR(ans); return set_error_from_openssl("Could not get public key from EVP_PKEY"); }
return ans;