summaryrefslogtreecommitdiff
path: root/libarchive/archive_read.c
diff options
context:
space:
mode:
authorMichihiro NAKAJIMA <ggcueroad@gmail.com>2014-08-03 15:08:41 +0900
committerMichihiro NAKAJIMA <ggcueroad@gmail.com>2014-08-03 15:08:41 +0900
commit7b759a662c5816273691e594d2281686139fad1d (patch)
tree1ca028c50dd7abeb9e26c90dd2113196f565359e /libarchive/archive_read.c
parentc0dd6ae5c5369384c14fcc1486886d8463c98909 (diff)
downloadlibarchive-7b759a662c5816273691e594d2281686139fad1d.tar.gz
Properly set a error message when a client seeker callback is not
defined.
Diffstat (limited to 'libarchive/archive_read.c')
-rw-r--r--libarchive/archive_read.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libarchive/archive_read.c b/libarchive/archive_read.c
index cbf1c963..0882485f 100644
--- a/libarchive/archive_read.c
+++ b/libarchive/archive_read.c
@@ -230,8 +230,11 @@ client_seek_proxy(struct archive_read_filter *self, int64_t offset, int whence)
* other libarchive code that assumes a successful forward
* seek means it can also seek backwards.
*/
- if (self->archive->client.seeker == NULL)
+ if (self->archive->client.seeker == NULL) {
+ archive_set_error(&self->archive->archive, ARCHIVE_ERRNO_MISC,
+ "Current client reader does not support seeking a device");
return (ARCHIVE_FAILED);
+ }
return (self->archive->client.seeker)(&self->archive->archive,
self->data, offset, whence);
}