| PyModule_AddStringConstant(m, "_DEFAULT_CIPHERS", |
| PY_SSL_DEFAULT_CIPHER_STRING); |
| |
| PyModule_AddIntConstant(m, "SSL_ERROR_ZERO_RETURN", |
| PY_SSL_ERROR_ZERO_RETURN); |
| PyModule_AddIntConstant(m, "SSL_ERROR_WANT_READ", |
| PY_SSL_ERROR_WANT_READ); |
| PyModule_AddIntConstant(m, "SSL_ERROR_WANT_WRITE", |
| PY_SSL_ERROR_WANT_WRITE); |
| PyModule_AddIntConstant(m, "SSL_ERROR_WANT_X509_LOOKUP", |
| PY_SSL_ERROR_WANT_X509_LOOKUP); |
| PyModule_AddIntConstant(m, "SSL_ERROR_SYSCALL", |
| PY_SSL_ERROR_SYSCALL); |
| PyModule_AddIntConstant(m, "SSL_ERROR_SSL", |
| PY_SSL_ERROR_SSL); |
| PyModule_AddIntConstant(m, "SSL_ERROR_WANT_CONNECT", |
| PY_SSL_ERROR_WANT_CONNECT); |
| /* non ssl.h errorcodes */ |
| PyModule_AddIntConstant(m, "SSL_ERROR_EOF", |
| PY_SSL_ERROR_EOF); |
| PyModule_AddIntConstant(m, "SSL_ERROR_INVALID_ERROR_CODE", |
| PY_SSL_ERROR_INVALID_ERROR_CODE); |
| /* cert requirements */ |
| PyModule_AddIntConstant(m, "CERT_NONE", |
| PY_SSL_CERT_NONE); |
| PyModule_AddIntConstant(m, "CERT_OPTIONAL", |
| PY_SSL_CERT_OPTIONAL); |
| PyModule_AddIntConstant(m, "CERT_REQUIRED", |
| PY_SSL_CERT_REQUIRED); |
| /* CRL verification for verification_flags */ |
| PyModule_AddIntConstant(m, "VERIFY_DEFAULT", |
| 0); |
| PyModule_AddIntConstant(m, "VERIFY_CRL_CHECK_LEAF", |
| X509_V_FLAG_CRL_CHECK); |
| PyModule_AddIntConstant(m, "VERIFY_CRL_CHECK_CHAIN", |
| X509_V_FLAG_CRL_CHECK|X509_V_FLAG_CRL_CHECK_ALL); |
| PyModule_AddIntConstant(m, "VERIFY_X509_STRICT", |
| X509_V_FLAG_X509_STRICT); |
| PyModule_AddIntConstant(m, "VERIFY_ALLOW_PROXY_CERTS", |
| X509_V_FLAG_ALLOW_PROXY_CERTS); |
| PyModule_AddIntConstant(m, "VERIFY_X509_TRUSTED_FIRST", |
| X509_V_FLAG_TRUSTED_FIRST); |
Bug report
sslmodule_init_constantsdoes not return-1when any ofPyModule_Add*calls fail.For example,
PyModule_AddIntConstantreturns-1on error, but it is never checked:cpython/Modules/_ssl.c
Lines 5790 to 5831 in 96cbd1e
Other ``sslmodule_init_*` functions do check for errors correctly.
I have a PR ready.
Linked PRs
_ssl.cnot checking for errors when initializing a module #111232