@@ -576,7 +576,7 @@ PySSL_ChainExceptions(PySSLSocket *sslsock) {
576
576
}
577
577
578
578
static PyObject *
579
- PySSL_SetError (PySSLSocket * sslsock , int ret , const char * filename , int lineno )
579
+ PySSL_SetError (PySSLSocket * sslsock , const char * filename , int lineno )
580
580
{
581
581
PyObject * type ;
582
582
char * errstr = NULL ;
@@ -589,7 +589,6 @@ PySSL_SetError(PySSLSocket *sslsock, int ret, const char *filename, int lineno)
589
589
_sslmodulestate * state = get_state_sock (sslsock );
590
590
type = state -> PySSLErrorObject ;
591
591
592
- assert (ret <= 0 );
593
592
e = ERR_peek_last_error ();
594
593
595
594
if (sslsock -> ssl != NULL ) {
@@ -622,32 +621,21 @@ PySSL_SetError(PySSLSocket *sslsock, int ret, const char *filename, int lineno)
622
621
case SSL_ERROR_SYSCALL :
623
622
{
624
623
if (e == 0 ) {
625
- PySocketSockObject * s = GET_SOCKET (sslsock );
626
- if (ret == 0 || (((PyObject * )s ) == Py_None )) {
624
+ /* underlying BIO reported an I/O error */
625
+ ERR_clear_error ();
626
+ #ifdef MS_WINDOWS
627
+ if (err .ws ) {
628
+ return PyErr_SetFromWindowsErr (err .ws );
629
+ }
630
+ #endif
631
+ if (err .c ) {
632
+ errno = err .c ;
633
+ return PyErr_SetFromErrno (PyExc_OSError );
634
+ }
635
+ else {
627
636
p = PY_SSL_ERROR_EOF ;
628
637
type = state -> PySSLEOFErrorObject ;
629
638
errstr = "EOF occurred in violation of protocol" ;
630
- } else if (s && ret == -1 ) {
631
- /* underlying BIO reported an I/O error */
632
- ERR_clear_error ();
633
- #ifdef MS_WINDOWS
634
- if (err .ws ) {
635
- return PyErr_SetFromWindowsErr (err .ws );
636
- }
637
- #endif
638
- if (err .c ) {
639
- errno = err .c ;
640
- return PyErr_SetFromErrno (PyExc_OSError );
641
- }
642
- else {
643
- p = PY_SSL_ERROR_EOF ;
644
- type = state -> PySSLEOFErrorObject ;
645
- errstr = "EOF occurred in violation of protocol" ;
646
- }
647
- } else { /* possible? */
648
- p = PY_SSL_ERROR_SYSCALL ;
649
- type = state -> PySSLSyscallErrorObject ;
650
- errstr = "Some I/O error occurred" ;
651
639
}
652
640
} else {
653
641
if (ERR_GET_LIB (e ) == ERR_LIB_SSL &&
@@ -1013,7 +1001,7 @@ _ssl__SSLSocket_do_handshake_impl(PySSLSocket *self)
1013
1001
err .ssl == SSL_ERROR_WANT_WRITE );
1014
1002
Py_XDECREF (sock );
1015
1003
if (ret < 1 )
1016
- return PySSL_SetError (self , ret , __FILE__ , __LINE__ );
1004
+ return PySSL_SetError (self , __FILE__ , __LINE__ );
1017
1005
if (PySSL_ChainExceptions (self ) < 0 )
1018
1006
return NULL ;
1019
1007
Py_RETURN_NONE ;
@@ -2434,7 +2422,7 @@ _ssl__SSLSocket_write_impl(PySSLSocket *self, Py_buffer *b)
2434
2422
2435
2423
Py_XDECREF (sock );
2436
2424
if (retval == 0 )
2437
- return PySSL_SetError (self , retval , __FILE__ , __LINE__ );
2425
+ return PySSL_SetError (self , __FILE__ , __LINE__ );
2438
2426
if (PySSL_ChainExceptions (self ) < 0 )
2439
2427
return NULL ;
2440
2428
return PyLong_FromSize_t (count );
@@ -2464,7 +2452,7 @@ _ssl__SSLSoc
D0B5
ket_pending_impl(PySSLSocket *self)
2464
2452
self -> err = err ;
2465
2453
2466
2454
if (count < 0 )
2467
- return PySSL_SetError (self , count , __FILE__ , __LINE__ );
2455
+ return PySSL_SetError (self , __FILE__ , __LINE__ );
2468
2456
else
2469
2457
return PyLong_FromLong (count );
2470
2458
}
@@ -2587,7 +2575,7 @@ _ssl__SSLSocket_read_impl(PySSLSocket *self, Py_ssize_t len,
2587
2575
err .ssl == SSL_ERROR_WANT_WRITE );
2588
2576
2589
2577
if (retval == 0 ) {
2590
- PySSL_SetError (self , retval , __FILE__ , __LINE__ );
2578
+ PySSL_SetError (self , __FILE__ , __LINE__ );
2591
2579
goto error ;
2592
2580
}
2593
2581
if (self -> exc_type != NULL )
@@ -2713,7 +2701,7 @@ _ssl__SSLSocket_shutdown_impl(PySSLSocket *self)
2713
2701
}
2714
2702
if (ret < 0 ) {
2715
2703
Py_XDECREF (sock );
2716
- PySSL_SetError (self , ret , __FILE__ , __LINE__ );
2704
+ PySSL_SetError (self , __FILE__ , __LINE__ );
2717
2705
return NULL ;
2718
2706
}
2719
2707
if (self -> exc_type != NULL )
0 commit comments