Uploaded image for project: 'ActiveMQ C++ Client'
  1. ActiveMQ C++ Client
  2. AMQCPP-388

AprPool::getAprPool() returns NULL, causing access violation and application crash


    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 3.2.3
    • Fix Version/s: 3.2.3
    • Component/s: Decaf
    • Labels:
    • Environment:

      Windows xp service pack 3, ActiveMQ broker 5.3.1, apr 1.4.2, apr-util 1.3.9, apr iconv 1.2.1


      Our application that uses activemq c++ client lib crashed with the following dump:

      Thread 87 - System ID 3780

      Function Arg 1 Arg 2 Arg 3 Source
      libapr_1!apr_pvsprintf+8 00000000 0642a188 180eeb94
      activemq_cppu!decaf::lang::Exception::buildMessage+71 0642a188 180eeb74 180eee2c
      activemq_cppu!decaf::lang::exceptions::RuntimeException::RuntimeException+4d 180efeec 0642a160 00000097
      activemq_cppu!decaf::lang::ThreadProperties::runCallback+125 180eee2c 180efee0 00000001
      msvcr80!CatchIt+5c 00000000 00000000 00000000

      LIBAPR_1!APR_PVSPRINTF+8In scotapp.dmp the assembly instruction at libapr_1!apr_pvsprintf+8 in C:\scot\dll\libapr-1.dll has caused an access violation exception (0xC0000005) when trying to read from memory location 0x0000002c on thread 87

      On the call stack, we saw that following function from class decaf::lang::Exception was called:
      void Exception::buildMessage( const char* format, va_list& vargs ) {

      // Allocate buffer with a guess of it's size
      AprPool pool;

      // Allocate a buffer of the specified size.
      char* buffer = apr_pvsprintf( pool.getAprPool(), format, vargs );

      // Guessed size was enough. Assign the string.
      message.assign( buffer, strlen( buffer ) );

      The first parameter passed into apr_pvsprintf was NULL, causing the crash. Could you please take a look and see if there is any bug in the activemqcpp code that could cause the problem. Thanks!


        1. BrokerMonitor.zip
          9.65 MB
          Helen Huang
        2. AMQCPP-388-Patch.txt
          3 kB
          Timothy Bish
        3. AMQCPP-388-Patch.txt
          8 kB
          Timothy Bish



            • Assignee:
              tabish121 Timothy Bish
              hhuang Helen Huang
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: