From faea58f73c1286fee87205533722cad67c7bc846 Mon Sep 17 00:00:00 2001 From: chenBright Date: Tue, 24 Mar 2026 17:18:36 +0800 Subject: [PATCH] Fix DoRead() returns error errno --- src/brpc/socket.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/brpc/socket.cpp b/src/brpc/socket.cpp index c123fb6b6e..da926c9ff5 100644 --- a/src/brpc/socket.cpp +++ b/src/brpc/socket.cpp @@ -2106,12 +2106,14 @@ ssize_t Socket::DoRead(size_t size_hint) { << ": " << SSLError(e); errno = ESSL; } else { + int saved_errno = errno; // System error with corresponding errno set. bool is_fatal_error = (ssl_error != SSL_ERROR_ZERO_RETURN && ssl_error != SSL_ERROR_SYSCALL) || - BIO_fd_non_fatal_error(errno) != 0 || + BIO_fd_non_fatal_error(saved_errno) != 0 || nr < 0; PLOG_IF(WARNING, is_fatal_error) << "Fail to read from ssl_fd=" << fd(); + errno = saved_errno; } break; }