From 29fb3a4af2fdd3fe1ac4a0824d83783eb1e8ad45 Mon Sep 17 00:00:00 2001 From: Pawel Dziepak Date: Thu, 9 Aug 2012 20:46:45 +0200 Subject: [PATCH] nfs4: Fix receiving from stream transport protocols --- src/add-ons/kernel/file_systems/nfs4/Connection.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/add-ons/kernel/file_systems/nfs4/Connection.cpp b/src/add-ons/kernel/file_systems/nfs4/Connection.cpp index cc4611b9d8..6b38b04dab 100644 --- a/src/add-ons/kernel/file_systems/nfs4/Connection.cpp +++ b/src/add-ons/kernel/file_systems/nfs4/Connection.cpp @@ -318,10 +318,10 @@ ConnectionStream::Receive(void** _buffer, uint32* _size) { status_t result; - int32 size = 0; + uint32 size = 0; void* buffer = NULL; - int32 record_size; + uint32 record_size; bool last_one; object_wait_info object[2]; @@ -359,7 +359,7 @@ ConnectionStream::Receive(void** _buffer, uint32* _size) } record_size = ntohl(record_size); - last_one = record_size < 0; + last_one = static_cast(record_size) < 0; record_size &= LAST_FRAGMENT - 1; void* ptr = realloc(buffer, size + record_size); @@ -374,7 +374,7 @@ ConnectionStream::Receive(void** _buffer, uint32* _size) result = recv(fSocket, (uint8*)buffer + size + received, record_size - received, 0); received += result; - } while (result > 0 && received < sizeof(record_size)); + } while (result > 0 && received < record_size); if (result < 0) { result = errno; free(buffer);