diff --git a/src/add-ons/kernel/network/stack/net_socket.cpp b/src/add-ons/kernel/network/stack/net_socket.cpp index 138ef01f84..e79940e55d 100644 --- a/src/add-ons/kernel/network/stack/net_socket.cpp +++ b/src/add-ons/kernel/network/stack/net_socket.cpp @@ -502,6 +502,9 @@ socket_control(net_socket* socket, int32 op, void* data, size_t length) return B_BAD_VALUE; ssize_t available = socket_read_avail(socket); + if (available < B_OK) + return available; + if (is_syscall()) { if (!IS_USER_ADDRESS(data) || user_memcpy(data, &available, sizeof(ssize_t)) != B_OK) {