From 97fb83608ac22580bbfeff1bdf3111f72d2c1634 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Tue, 9 Jun 2015 19:45:38 -0500 Subject: [PATCH] file_io.c: set errno=EINVAL on unexpected end of file --- src/file_io.c | 8 ++++---- src/resource.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/file_io.c b/src/file_io.c index 3176ce6f..f641aa28 100644 --- a/src/file_io.c +++ b/src/file_io.c @@ -38,7 +38,7 @@ * Return values: * WIMLIB_ERR_SUCCESS (0) * WIMLIB_ERR_READ (errno set) - * WIMLIB_ERR_UNEXPECTED_END_OF_FILE (errno set to 0) + * WIMLIB_ERR_UNEXPECTED_END_OF_FILE (errno set to EINVAL) */ int full_read(struct filedes *fd, void *buf, size_t count) @@ -47,7 +47,7 @@ full_read(struct filedes *fd, void *buf, size_t count) ssize_t ret = read(fd->fd, buf, count); if (unlikely(ret <= 0)) { if (ret == 0) { - errno = 0; + errno = EINVAL; return WIMLIB_ERR_UNEXPECTED_END_OF_FILE; } if (errno == EINTR) @@ -100,7 +100,7 @@ pipe_read(struct filedes *fd, void *buf, size_t count, off_t offset) * Return values: * WIMLIB_ERR_SUCCESS (0) * WIMLIB_ERR_READ (errno set) - * WIMLIB_ERR_UNEXPECTED_END_OF_FILE (errno set to 0) + * WIMLIB_ERR_UNEXPECTED_END_OF_FILE (errno set to EINVAL) * WIMLIB_ERR_RESOURCE_ORDER (errno set to ESPIPE) */ int @@ -113,7 +113,7 @@ full_pread(struct filedes *fd, void *buf, size_t count, off_t offset) ssize_t ret = pread(fd->fd, buf, count, offset); if (unlikely(ret <= 0)) { if (ret == 0) { - errno = 0; + errno = EINVAL; return WIMLIB_ERR_UNEXPECTED_END_OF_FILE; } if (errno == EINTR) diff --git a/src/resource.c b/src/resource.c index a4cc6c12..9afa25ff 100644 --- a/src/resource.c +++ b/src/resource.c @@ -103,7 +103,7 @@ struct data_range { * * WIMLIB_ERR_SUCCESS (0) * WIMLIB_ERR_READ (errno set) - * WIMLIB_ERR_UNEXPECTED_END_OF_FILE (errno set to 0) + * WIMLIB_ERR_UNEXPECTED_END_OF_FILE (errno set to EINVAL) * WIMLIB_ERR_NOMEM (errno set to ENOMEM) * WIMLIB_ERR_DECOMPRESSION (errno set to EINVAL) * WIMLIB_ERR_INVALID_CHUNK_SIZE (errno set to EINVAL) -- 2.43.0