From a254f5a3a8396865cf05e27e0ab03345ee66783a Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 24 Nov 2014 22:08:11 +0100 Subject: archive/zzip: fix inverted error handler Set the Error when zzip_seek()==-1 and not on success. Fixes a crash after seeking. --- src/archive/ZzipArchivePlugin.cxx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/archive/ZzipArchivePlugin.cxx') 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 */ -- cgit v1.2.3