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 <boost/iostreams/filtering
_stream.hpp>
#include <boost/iostreams/copy.hpp>
#include <boost/iostreams/filter/bzip2.hpp>

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;
    }
  }
}