aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS2
-rw-r--r--src/archive/ZzipArchivePlugin.cxx9
2 files changed, 7 insertions, 4 deletions
diff --git a/NEWS b/NEWS
index 8a39a6504..4699f6666 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
ver 0.18.19 (not yet released)
+* archive
+ - zzip: fix crash after seeking
ver 0.18.18 (2014/11/18)
* decoder
diff --git a/src/archive/ZzipArchivePlugin.cxx b/src/archive/ZzipArchivePlugin.cxx
index 973fe91dc..d3e4cc837 100644
--- a/src/archive/ZzipArchivePlugin.cxx
+++ b/src/archive/ZzipArchivePlugin.cxx
@@ -186,12 +186,13 @@ zzip_input_seek(InputStream *is, InputPlugin::offset_type offset,
{
ZzipInputStream *zis = (ZzipInputStream *)is;
zzip_off_t ofs = zzip_seek(zis->file, offset, whence);
- if (ofs != -1) {
+ if (ofs < 0) {
error.Set(zzip_domain, "zzip_seek() has failed");
- is->offset = ofs;
- return true;
+ return false;
}
- return false;
+
+ is->offset = ofs;
+ return true;
}
/* exported structures */