diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2014-07-03 09:10:17 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2014-07-03 13:11:58 +0200 |
commit | 2617def8d1430e093f6a482a72727b2965a8a8a6 (patch) | |
tree | f05a609146b860990646647430814425254001b1 /hwpfilter/source/hiodev.cxx | |
parent | Use gb_CppunitTest_use_executable (diff) | |
download | core-2617def8d1430e093f6a482a72727b2965a8a8a6.tar.gz core-2617def8d1430e093f6a482a72727b2965a8a8a6.zip |
Fix (harmless) stack-use-after-return
...as reported by -fsanitize=address CppunitTest_hwpfilter_test_hwpfilter, where
stack-local HStream stream from HwpReader::filter is still referenced from
HStreamIODev in
HStreamIODev::close
HStreamIODev::~HStreamIODev
HWPFile::~HWPFile
HwpReader::~HwpReader
which is only harmless because HStream::closeInput is a nop.
Change-Id: Idbc5539ab5f463ec6d5d72f428ce60327ebdb063
Diffstat (limited to 'hwpfilter/source/hiodev.cxx')
-rw-r--r-- | hwpfilter/source/hiodev.cxx | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/hwpfilter/source/hiodev.cxx b/hwpfilter/source/hiodev.cxx index d5f993d500c2..9e92219c62ff 100644 --- a/hwpfilter/source/hiodev.cxx +++ b/hwpfilter/source/hiodev.cxx @@ -107,7 +107,7 @@ int HIODev::read4b(void *ptr, int nmemb) // hfileiodev class -HStreamIODev::HStreamIODev(HStream & stream):_stream(stream) +HStreamIODev::HStreamIODev(HStream * stream):_stream(stream) { init(); } @@ -128,7 +128,7 @@ void HStreamIODev::init() bool HStreamIODev::open() { - if (!(_stream.available())) + if (!(_stream->available())) return false; return true; } @@ -148,7 +148,7 @@ void HStreamIODev::close(void) if (_gzfp) gz_close(_gzfp); /* gz_close() calls stream_closeInput() */ else - _stream.closeInput(); + _stream->closeInput(); _gzfp = NULL; } @@ -164,7 +164,7 @@ bool HStreamIODev::setCompressed(bool flag) { compressed = flag; if (flag == true) - return 0 != (_gzfp = gz_open(_stream)); + return 0 != (_gzfp = gz_open(*_stream)); else if (_gzfp) { gz_flush(_gzfp, Z_FINISH); @@ -181,7 +181,7 @@ bool HStreamIODev::setCompressed(bool flag) int HStreamIODev::read1b() { - int res = (compressed) ? GZREAD(rBuf, 1) : _stream.readBytes(rBuf, 1); + int res = (compressed) ? GZREAD(rBuf, 1) : _stream->readBytes(rBuf, 1); if (res <= 0) return -1; @@ -192,7 +192,7 @@ int HStreamIODev::read1b() int HStreamIODev::read2b() { - int res = (compressed) ? GZREAD(rBuf, 2) : _stream.readBytes(rBuf, 2); + int res = (compressed) ? GZREAD(rBuf, 2) : _stream->readBytes(rBuf, 2); if (res <= 0) return -1; @@ -203,7 +203,7 @@ int HStreamIODev::read2b() int HStreamIODev::read4b() { - int res = (compressed) ? GZREAD(rBuf, 4) : _stream.readBytes(rBuf, 4); + int res = (compressed) ? GZREAD(rBuf, 4) : _stream->readBytes(rBuf, 4); if (res <= 0) return -1; @@ -216,7 +216,7 @@ int HStreamIODev::read4b() int HStreamIODev::readBlock(void *ptr, int size) { int count = - (compressed) ? GZREAD(ptr, size) : _stream.readBytes((byte *) ptr, + (compressed) ? GZREAD(ptr, size) : _stream->readBytes((byte *) ptr, size); @@ -242,7 +242,7 @@ int HStreamIODev::skipBlock(int size) return size - remain; } } - return _stream.skipBytes(size); + return _stream->skipBytes(size); } |