I modified the test program shipped in the boost::iostreams to decompress a
1.5 GB file which expand to 6GB. The program exits after writing 900KB of
data without throwing exceptions.
It is reproduced below, I was told in the irc channel that this was a bug in
alloc and will be probably fixed in 1.34.1.
-r
#include <fstream>
#include <iostream>
#include
#include
#include
using namespace std;
namespace bio = boost::iostreams;
int main ( int argc, char ** argv ) {
if (argc < 2) {
fprintf(stderr, "Usage: %s data_filename\n", argv[0]);
exit(0);
}
ifstream file(argv[1], ios_base::in|ios_base::binary );
if ( !file.good() ) {
fprintf(stderr, "Unable to open file%s\n", argv[1]);
exit(0);
} else {
try {
bio::filtering_stream < bio::input > in;
in.push( bio::bzip2_decompressor () );
in.push( file );
bio::copy ( in, cout );
} catch ( const std::exception& e ) {
std::cerr<<"\nCaught std::exception " << ": "<< e.what() << std::endl;
}
}
}