Hi,
During our migration from Boost 1.34.1 to Boost 1.37.0 we are facing a bug
in bzip2 codec (boost::iostreams::bzip2_compressor &
boost::iostreams::bzip2_compressor).
To demonstrate it, you will find hereafter a code snippet:
#include <fstream>
#include
#include
#include
#include
#include
void main()
{
using namespace boost::iostreams ;
// Run smoothly
{
filtering_stream<bidirectional> chain ;
chain.push(combine(gzip_decompressor(), gzip_compressor())) ;
chain.push(std::fstream("test.gz", std::ios::binary|std::ios::out)) ;
chain << "test" ;
}
// Run smoothly
{
filtering_stream<bidirectional> chain ;
chain.push(combine(zlib_decompressor(), zlib_compressor())) ;
chain.push(std::fstream("test.zip", std::ios::binary|std::ios::out)) ;
chain << "test" ;
}
// Crash in bzip2_decompressor_impl::close
{
filtering_stream<bidirectional> chain ;
chain.push(combine(bzip2_decompressor(), bzip2_compressor())) ;
chain.push(std::fstream("test.bz2", std::ios::binary|std::ios::out)) ;
chain << "test" ;
}
}
The crash in bzip2_decompressor_impl::close is due to an access violation @
line 359 in boost/iostreams/filter/bzip2.hpp. For the other codec, zlib &
gzip, everything runs smoothly.
Set-up:
Boost 1.37.0
Windows XP SP3
Visual C++ 7.1
Bzip2 Library 1.0.5
With Boost 1.34.1 the bzip2 codec seems to run smoothly. Is there any work
around for this codec w/ Boost 1.37.0?
Thanks in advance.
Best regards,
Marc Viala