@@ -44,15 +44,19 @@ ssize_t cfw_stream_read(void *ptr, void *buf, size_t len) { CFWStream *stream = ptr; + ssize_t ret; if (stream == NULL || stream->ops == NULL) return -1; - return stream->ops->read(stream, buf, len); + if ((ret = stream->ops->read(stream, buf, len)) < -1) + ret = -1; + + return ret; } bool cfw_stream_write(void *ptr, const void *buf, size_t len) {