| Index: net/udp/udp_socket_libevent.cc
|
| diff --git a/net/udp/udp_socket_libevent.cc b/net/udp/udp_socket_libevent.cc
|
| index 6fdb94e5eb15e69de304145860163de27489388e..04fd8a9691481e31c40849b05b051292cdac0f89 100644
|
| --- a/net/udp/udp_socket_libevent.cc
|
| +++ b/net/udp/udp_socket_libevent.cc
|
| @@ -13,6 +13,7 @@
|
| #include <sys/socket.h>
|
|
|
| #include "base/callback.h"
|
| +#include "base/debug/alias.h"
|
| #include "base/logging.h"
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/metrics/sparse_histogram.h"
|
| @@ -126,7 +127,12 @@ void UDPSocketLibevent::Close() {
|
| ok = write_socket_watcher_.StopWatchingFileDescriptor();
|
| DCHECK(ok);
|
|
|
| - PCHECK(0 == IGNORE_EINTR(close(socket_)));
|
| + if (IGNORE_EINTR(close(socket_)) == -1) {
|
| + int last_error = errno;
|
| + base::debug::Alias(&last_error);
|
| + // Crash on any error other than EIO.
|
| + PCHECK(last_error == EIO);
|
| + }
|
|
|
| socket_ = kInvalidSocket;
|
| addr_family_ = 0;
|
|
|