You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.7 KiB
77 lines
2.7 KiB
diff -up pyOpenSSL-0.13/OpenSSL/crypto/crypto.c.error pyOpenSSL-0.13/OpenSSL/crypto/crypto.c |
|
--- pyOpenSSL-0.13/OpenSSL/crypto/crypto.c.error 2011-09-02 17:46:13.000000000 +0200 |
|
+++ pyOpenSSL-0.13/OpenSSL/crypto/crypto.c 2013-04-04 14:25:17.405118204 +0200 |
|
@@ -45,12 +45,15 @@ global_passphrase_callback(char *buf, in |
|
|
|
func = (PyObject *)cb_arg; |
|
argv = Py_BuildValue("(i)", rwflag); |
|
+ if (argv == NULL) |
|
+ return 0; |
|
ret = PyEval_CallObject(func, argv); |
|
Py_DECREF(argv); |
|
if (ret == NULL) |
|
return 0; |
|
if (!PyBytes_Check(ret)) |
|
{ |
|
+ Py_DECREF(ret); |
|
PyErr_SetString(PyExc_ValueError, "String expected"); |
|
return 0; |
|
} |
|
@@ -58,6 +61,7 @@ global_passphrase_callback(char *buf, in |
|
if (nchars > len) |
|
nchars = len; |
|
strncpy(buf, PyBytes_AsString(ret), nchars); |
|
+ Py_DECREF(ret); |
|
return nchars; |
|
} |
|
|
|
@@ -637,7 +641,10 @@ crypto_sign(PyObject *spam, PyObject *ar |
|
return NULL; |
|
} |
|
|
|
- EVP_SignInit(&md_ctx, digest); |
|
+ if (EVP_SignInit(&md_ctx, digest) <= 0) { |
|
+ exception_from_error_queue(crypto_Error); |
|
+ return NULL; |
|
+ } |
|
EVP_SignUpdate(&md_ctx, data, data_len); |
|
sig_len = sizeof(sig_buf); |
|
err = EVP_SignFinal(&md_ctx, sig_buf, &sig_len, pkey->pkey); |
|
@@ -692,7 +699,11 @@ crypto_verify(PyObject *spam, PyObject * |
|
return NULL; |
|
} |
|
|
|
- EVP_VerifyInit(&md_ctx, digest); |
|
+ if (EVP_VerifyInit(&md_ctx, digest) <= 0) { |
|
+ exception_from_error_queue(crypto_Error); |
|
+ EVP_PKEY_free(pkey); |
|
+ return NULL; |
|
+ } |
|
EVP_VerifyUpdate(&md_ctx, data, data_len); |
|
err = EVP_VerifyFinal(&md_ctx, signature, sig_len, pkey); |
|
EVP_PKEY_free(pkey); |
|
diff -up pyOpenSSL-0.13/OpenSSL/crypto/x509.c.error pyOpenSSL-0.13/OpenSSL/crypto/x509.c |
|
--- pyOpenSSL-0.13/OpenSSL/crypto/x509.c.error 2011-09-02 17:46:13.000000000 +0200 |
|
+++ pyOpenSSL-0.13/OpenSSL/crypto/x509.c 2013-04-04 14:02:34.932847551 +0200 |
|
@@ -656,6 +656,7 @@ crypto_X509_digest(crypto_X509Obj *self, |
|
if (!X509_digest(self->x509,digest,fp,&len)) |
|
{ |
|
exception_from_error_queue(crypto_Error); |
|
+ return NULL; |
|
} |
|
tmp = malloc(3*len+1); |
|
memset(tmp, 0, 3*len+1); |
|
diff -up pyOpenSSL-0.13/OpenSSL/ssl/context.c.error pyOpenSSL-0.13/OpenSSL/ssl/context.c |
|
--- pyOpenSSL-0.13/OpenSSL/ssl/context.c.error 2011-09-02 17:46:13.000000000 +0200 |
|
+++ pyOpenSSL-0.13/OpenSSL/ssl/context.c 2013-04-04 14:02:34.932847551 +0200 |
|
@@ -1215,6 +1215,10 @@ ssl_Context_init(ssl_ContextObj *self, i |
|
} |
|
|
|
self->ctx = SSL_CTX_new(method); |
|
+ if (self->ctx == NULL) { |
|
+ exception_from_error_queue(ssl_Error); |
|
+ return NULL; |
|
+ } |
|
Py_INCREF(Py_None); |
|
self->passphrase_callback = Py_None; |
|
Py_INCREF(Py_None);
|
|
|