Chromium Code Reviews| Index: net/socket/ssl_client_socket_nss.cc |
| diff --git a/net/socket/ssl_client_socket_nss.cc b/net/socket/ssl_client_socket_nss.cc |
| index 3a8b39e678c2785ea4d6fd7c60fea762fb599883..4a67f4d58b2a5d81d3cfb6ad62ca3d2f07c27b58 100644 |
| --- a/net/socket/ssl_client_socket_nss.cc |
| +++ b/net/socket/ssl_client_socket_nss.cc |
| @@ -2140,6 +2140,13 @@ int SSLClientSocketNSS::Core::BufferSend() { |
| if (transport_send_busy_) |
| return ERR_IO_PENDING; |
| + // If there was an error, return it synchronously rather than call |
|
wtc
2014/06/17 18:24:06
Nit: "return it" is no longer accurate because you
davidben
2014/06/17 20:27:43
Done.
|
| + // DoBufferSend on the network task runner. This is important to prevent |
| + // spinning infinitely in the off-thread NSS case. The error code itself is |
| + // ignored, so just return ERR_ABORTED. See https://crbug.com/381160. |
| + if (memio_LastWriteError(nss_bufs_) != 0) |
| + return ERR_ABORTED; |
| + |
| const char* buf1; |
| const char* buf2; |
| unsigned int len1, len2; |