1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-09 22:21:29 +00:00

Ncat: catch SSL errors with 0 return value

This commit is contained in:
dmiller
2023-07-31 17:18:30 +00:00
parent 9836d15314
commit 6cdc9ea14b

View File

@@ -303,10 +303,10 @@ int fdinfo_recv(struct fdinfo *fdn, char *buf, size_t size)
{
do {
n = SSL_read(fdn->ssl, buf, size);
/* SSL_read returns <0 in some cases like renegotiation. In these
/* SSL_read returns <=0 in some cases like renegotiation. In these
* cases, SSL_get_error gives SSL_ERROR_WANT_{READ,WRITE}, and we
* should try the SSL_read again. */
err = (n < 0) ? SSL_get_error(fdn->ssl, n) : SSL_ERROR_NONE;
err = (n <= 0) ? SSL_get_error(fdn->ssl, n) : SSL_ERROR_NONE;
} while (err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE);
if (err != SSL_ERROR_NONE) {
fdn->lasterr = err;
@@ -377,10 +377,10 @@ int fdinfo_send(struct fdinfo *fdn, const char *buf, size_t size)
{
do {
n = SSL_write(fdn->ssl, buf, size);
/* SSL_write returns <0 in some cases like renegotiation. In these
/* SSL_write returns <=0 in some cases like renegotiation. In these
* cases, SSL_get_error gives SSL_ERROR_WANT_{READ,WRITE}, and we
* should try the SSL_write again. */
err = (n < 0) ? SSL_get_error(fdn->ssl, n) : SSL_ERROR_NONE;
err = (n <= 0) ? SSL_get_error(fdn->ssl, n) : SSL_ERROR_NONE;
} while (err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE);
if (err != SSL_ERROR_NONE) {
fdn->lasterr = err;