IBM Support

IZ93224: SEGFAULT WITH CLEAR() IN HASH MAP/SET TABLE

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The following test case segfaults at runtime:
    
    ===== COMPILE COMMAND:
    xlC_r -o tc tc.cpp -q64 -D__IBMCPP_TR1__
    
    ===== TESTCASE:
    $ cat tc.cpp
    #include <iostream>
    #include <memory>
    #include <unordered_set>
    
    int main()
    {
            std::auto_ptr<std::tr1::unordered_set<unsigned int> >
    container(new std::tr1::unordered_set<unsigned int>());
            for (unsigned int i = 1; i < 5; i++)
            {
                    container->clear();
                    for (unsigned int j = 0; j < 50*i; j++)
                            container->insert(rand()%100000);
                    std::cout << "i =" << i << std::endl;
            }
    }
    
    
    
    
    
    ===== ACTUAL OUTPUT:
    $ ./tc
    i =1
    Segmentation fault (core dumped)
    
    
    ===== EXPECTED OUTPUT:
    Should not segfault.
    

Local fix

  • N/A
    

Problem summary

  • USERS AFFECTED:
    Users who use clear() and in some insertion cases in TR1
    set/map and multi set/map maybe affected by this issue.
    
    PROBLEM DESCRIPTION:
    Rehashing can cause buckets to hash to uninitialized memory
    causing applications to segfault at runtime.
    

Problem conclusion

  • The compiler has been fixed to address the issue in the clear()
    function.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IZ93224

  • Reported component name

    XL C++ AIX

  • Reported component ID

    5724U8100

  • Reported release

    A10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-01-26

  • Closed date

    2011-03-31

  • Last modified date

    2011-03-31

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    IZ93241 IZ96365

Fix information

  • Fixed component name

    XL C++ AIX

  • Fixed component ID

    5724U8100

Applicable component levels

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSJT9L","label":"XL C\/C++"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"A.1","Edition":"","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]

Document Information

Modified date:
31 March 2011