Fix problem when SSL_read() returns SSL_ERROR_WANT_WRITE. This can
happen when the socket cannot be written to immediately. We need to set the read_instead_of_write flag in that case, _not_ write_instead_of_read. Also sync comments with sendlog.c. Bug #954
This commit is contained in:
@@ -1700,7 +1700,8 @@ server_msg_cb(int fd, int what, void *v)
|
||||
}
|
||||
closure->temporary_write_event = true;
|
||||
}
|
||||
closure->write_instead_of_read = true;
|
||||
/* Redirect write event to finish SSL_read() */
|
||||
closure->read_instead_of_write = true;
|
||||
debug_return;
|
||||
case SSL_ERROR_SSL:
|
||||
/*
|
||||
@@ -1842,6 +1843,7 @@ client_msg_cb(int fd, int what, void *v)
|
||||
/* ssl wants to read, read event always active */
|
||||
sudo_debug_printf(SUDO_DEBUG_NOTICE|SUDO_DEBUG_LINENO,
|
||||
"SSL_write returns SSL_ERROR_WANT_READ");
|
||||
/* Redirect read event to finish SSL_write() */
|
||||
closure->write_instead_of_read = true;
|
||||
debug_return;
|
||||
case SSL_ERROR_WANT_WRITE:
|
||||
|
Reference in New Issue
Block a user