diff --git a/src/posix/platform/hdlc_interface.cpp b/src/posix/platform/hdlc_interface.cpp index afe0842ef..889a06cb4 100644 --- a/src/posix/platform/hdlc_interface.cpp +++ b/src/posix/platform/hdlc_interface.cpp @@ -201,7 +201,11 @@ void HdlcInterface::Read(void) { Decode(buffer, static_cast(rval)); } - else if ((rval < 0) && (errno != EAGAIN) && (errno != EINTR)) + else if (rval == 0) + { + DieNowWithMessage("RCP device disconnected (EOF)", OT_EXIT_FAILURE); + } + else if ((errno != EAGAIN) && (errno != EWOULDBLOCK) && (errno != EINTR)) { DieNow(OT_EXIT_ERROR_ERRNO); }