@@ -602,26 +602,27 @@ return isAtEndOfStream; } - (size_t)_readNBytes: (size_t)length - intoBuffer: (char*)buffer + intoBuffer: (void*)buffer { size_t ret; if (fileDescriptor == -1 || isAtEndOfStream) @throw [OFReadFailedException newWithClass: isa stream: self requestedLength: length]; + if ((ret = read(fileDescriptor, buffer, length)) == 0) isAtEndOfStream = YES; return ret; } - (size_t)_writeNBytes: (size_t)length - fromBuffer: (const char*)buffer + fromBuffer: (const void*)buffer { size_t ret; if (fileDescriptor == -1 || isAtEndOfStream || (ret = write(fileDescriptor, buffer, length)) < length)