Issue Details (XML | Word | Printable)

Key: STDCXX-597
Type: Improvement Improvement
Status: Open Open
Priority: Minor Minor
Assignee: Unassigned
Reporter: Travis Vitek
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
C++ Standard Library

purify reports uninitialized memory read in _rw_get_char

Created: 16/Oct/07 12:12 AM   Updated: 11/Jul/09 12:06 AM
Return to search
Component/s: Test Driver
Affects Version/s: 4.2.0
Fix Version/s: 4.3.0

Time Tracking:
Original Estimate: 2h
Original Estimate - 2h
Remaining Estimate: 4h
Time Spent - 4h Remaining Estimate - 4h
Time Spent: 4h
Time Spent - 4h Remaining Estimate - 4h

Severity: Incorrect Behavior


 Description  « Hide
****  Purify instrumented ./21.string.access (pid 2878)  ****
UMR: Uninitialized memory read:
  * This is occurring while in thread 2878:
    _rw_get_char(char const*, char const**, unsigned*) [char.cpp:562]
    rw_match(char const*, char const*, unsigned) [char.cpp:816]
     test_access<char, std::char_traits<char>, std::allocator<char> >(char, std::char_traits<char>*, char*, StringFunc const&, StringTestCase const&) [21.string.access.cpp:274]
    test_access(StringFunc const&, StringTestCase const&) [21.string.access.cpp:317]
    _rw_test_case(StringFunc const&, StringTestCase const&,   (*)(StringFunc const&, StringTestCase const&)) [21.strings.cpp:1298]
    _rw_run_cases(StringFunc const&, StringTest const&) [21.strings.cpp:1353]
  * Reading 1 byte from 0x8182256 in the heap.
  * Address 0x8182256 is 14 bytes into a malloc'd block at 0x8182248 of 46 bytes.
  * This block was allocated from thread -1207973632:
    malloc         [rtlib.o]
    operator new(unsigned) [libstd15d.so]
    __rw::__rw_allocate(unsigned, int) [memory.cpp:53]
    std::allocator<char>::allocate(unsigned,  const*) [_allocator.h:144]
    std::string<char, std::char_traits<char>, std::allocator<char>>::_C_get_rep(unsigned, unsigned) [string.cc:102]
    std::string<char, std::char_traits<char>, std::allocator<char>>::string<char, std::char_traits<char>, std::allocator<char>>[not-in-charge](char const*, unsigned, std::allocator<char> const&) [string.cc:180]

****  Purify instrumented ./21.string.access (pid 2878)  ****
UMR: Uninitialized memory read:
  * This is occurring while in thread 2878:
    _rw_get_char(char const*, char const**, unsigned*) [char.cpp:562]
    rw_match(char const*, char const*, unsigned) [char.cpp:816]
     test_access<char, UserTraits<char>, std::allocator<char> >(char, UserTraits<char>*, char*, StringFunc const&, StringTestCase const&) [21.string.access.cpp:274]
    test_access(StringFunc const&, StringTestCase const&) [21.string.access.cpp:317]
    _rw_test_case(StringFunc const&, StringTestCase const&,   (*)(StringFunc const&, StringTestCase const&)) [21.strings.cpp:1298]
    _rw_run_cases(StringFunc const&, StringTest const&) [21.strings.cpp:1353]
  * Reading 1 byte from 0x818d5a6 in the heap.
  * Address 0x818d5a6 is 14 bytes into a malloc'd block at 0x818d598 of 46 bytes.
  * This block was allocated from thread -1207973632:
    malloc         [rtlib.o]
    operator new(unsigned) [libstd15d.so]
    __rw::__rw_allocate(unsigned, int) [memory.cpp:53]
    std::allocator<char>::allocate(unsigned,  const*) [_allocator.h:144]
    std::basic_string<char, std::char_traits<char>, std::allocator<char>><char, UserTraits<char>, std::allocator<char> >::_C_get_rep(unsigned, unsigned) [string.cc:102]
    std::basic_string<char, std::char_traits<char>, std::allocator<char>><char, UserTraits<char>, std::allocator<char> >::basic_string<char, std::char_traits<char>, std::allocator<char>>[not-in-charge](char const*, unsigned, std::allocator<char> const&) [string.cc:180] 


 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Travis Vitek made changes - 16/Oct/07 12:15 AM
Field Original Value New Value
Attachment stdcxx-597.patch [ 12367790 ]
Martin Sebor made changes - 01/Nov/07 12:06 AM
Affects Version/s 4.2 [ 12311945 ]
Martin Sebor made changes - 21/Jan/08 06:35 PM
Remaining Estimate 2h [ 7200 ]
Original Estimate 2h [ 7200 ]
Martin Sebor made changes - 13/Feb/08 05:01 PM
Description
**** Purify instrumented ./21.string.access (pid 2878) ****
UMR: Uninitialized memory read:
  * This is occurring while in thread 2878:
    _rw_get_char(char const*, char const**, unsigned*) [char.cpp:562]
    rw_match(char const*, char const*, unsigned) [char.cpp:816]
     test_access<char, std::char_traits<char>, std::allocator<char> >(char, std::char_traits<char>*, char*, StringFunc const&, StringTestCase const&) [21.string.access.cpp:274]
    test_access(StringFunc const&, StringTestCase const&) [21.string.access.cpp:317]
    _rw_test_case(StringFunc const&, StringTestCase const&, (*)(StringFunc const&, StringTestCase const&)) [21.strings.cpp:1298]
    _rw_run_cases(StringFunc const&, StringTest const&) [21.strings.cpp:1353]
  * Reading 1 byte from 0x8182256 in the heap.
  * Address 0x8182256 is 14 bytes into a malloc'd block at 0x8182248 of 46 bytes.
  * This block was allocated from thread -1207973632:
    malloc [rtlib.o]
    operator new(unsigned) [libstd15d.so]
    __rw::__rw_allocate(unsigned, int) [memory.cpp:53]
    std::allocator<char>::allocate(unsigned, const*) [_allocator.h:144]
    std::string<char, std::char_traits<char>, std::allocator<char>>::_C_get_rep(unsigned, unsigned) [string.cc:102]
    std::string<char, std::char_traits<char>, std::allocator<char>>::string<char, std::char_traits<char>, std::allocator<char>>[not-in-charge](char const*, unsigned, std::allocator<char> const&) [string.cc:180]

**** Purify instrumented ./21.string.access (pid 2878) ****
UMR: Uninitialized memory read:
  * This is occurring while in thread 2878:
    _rw_get_char(char const*, char const**, unsigned*) [char.cpp:562]
    rw_match(char const*, char const*, unsigned) [char.cpp:816]
     test_access<char, UserTraits<char>, std::allocator<char> >(char, UserTraits<char>*, char*, StringFunc const&, StringTestCase const&) [21.string.access.cpp:274]
    test_access(StringFunc const&, StringTestCase const&) [21.string.access.cpp:317]
    _rw_test_case(StringFunc const&, StringTestCase const&, (*)(StringFunc const&, StringTestCase const&)) [21.strings.cpp:1298]
    _rw_run_cases(StringFunc const&, StringTest const&) [21.strings.cpp:1353]
  * Reading 1 byte from 0x818d5a6 in the heap.
  * Address 0x818d5a6 is 14 bytes into a malloc'd block at 0x818d598 of 46 bytes.
  * This block was allocated from thread -1207973632:
    malloc [rtlib.o]
    operator new(unsigned) [libstd15d.so]
    __rw::__rw_allocate(unsigned, int) [memory.cpp:53]
    std::allocator<char>::allocate(unsigned, const*) [_allocator.h:144]
    std::basic_string<char, std::char_traits<char>, std::allocator<char>><char, UserTraits<char>, std::allocator<char> >::_C_get_rep(unsigned, unsigned) [string.cc:102]
    std::basic_string<char, std::char_traits<char>, std::allocator<char>><char, UserTraits<char>, std::allocator<char> >::basic_string<char, std::char_traits<char>, std::allocator<char>>[not-in-charge](char const*, unsigned, std::allocator<char> const&) [string.cc:180]

{noformat}
**** Purify instrumented ./21.string.access (pid 2878) ****
UMR: Uninitialized memory read:
  * This is occurring while in thread 2878:
    _rw_get_char(char const*, char const**, unsigned*) [char.cpp:562]
    rw_match(char const*, char const*, unsigned) [char.cpp:816]
     test_access<char, std::char_traits<char>, std::allocator<char> >(char, std::char_traits<char>*, char*, StringFunc const&, StringTestCase const&) [21.string.access.cpp:274]
    test_access(StringFunc const&, StringTestCase const&) [21.string.access.cpp:317]
    _rw_test_case(StringFunc const&, StringTestCase const&, (*)(StringFunc const&, StringTestCase const&)) [21.strings.cpp:1298]
    _rw_run_cases(StringFunc const&, StringTest const&) [21.strings.cpp:1353]
  * Reading 1 byte from 0x8182256 in the heap.
  * Address 0x8182256 is 14 bytes into a malloc'd block at 0x8182248 of 46 bytes.
  * This block was allocated from thread -1207973632:
    malloc [rtlib.o]
    operator new(unsigned) [libstd15d.so]
    __rw::__rw_allocate(unsigned, int) [memory.cpp:53]
    std::allocator<char>::allocate(unsigned, const*) [_allocator.h:144]
    std::string<char, std::char_traits<char>, std::allocator<char>>::_C_get_rep(unsigned, unsigned) [string.cc:102]
    std::string<char, std::char_traits<char>, std::allocator<char>>::string<char, std::char_traits<char>, std::allocator<char>>[not-in-charge](char const*, unsigned, std::allocator<char> const&) [string.cc:180]

**** Purify instrumented ./21.string.access (pid 2878) ****
UMR: Uninitialized memory read:
  * This is occurring while in thread 2878:
    _rw_get_char(char const*, char const**, unsigned*) [char.cpp:562]
    rw_match(char const*, char const*, unsigned) [char.cpp:816]
     test_access<char, UserTraits<char>, std::allocator<char> >(char, UserTraits<char>*, char*, StringFunc const&, StringTestCase const&) [21.string.access.cpp:274]
    test_access(StringFunc const&, StringTestCase const&) [21.string.access.cpp:317]
    _rw_test_case(StringFunc const&, StringTestCase const&, (*)(StringFunc const&, StringTestCase const&)) [21.strings.cpp:1298]
    _rw_run_cases(StringFunc const&, StringTest const&) [21.strings.cpp:1353]
  * Reading 1 byte from 0x818d5a6 in the heap.
  * Address 0x818d5a6 is 14 bytes into a malloc'd block at 0x818d598 of 46 bytes.
  * This block was allocated from thread -1207973632:
    malloc [rtlib.o]
    operator new(unsigned) [libstd15d.so]
    __rw::__rw_allocate(unsigned, int) [memory.cpp:53]
    std::allocator<char>::allocate(unsigned, const*) [_allocator.h:144]
    std::basic_string<char, std::char_traits<char>, std::allocator<char>><char, UserTraits<char>, std::allocator<char> >::_C_get_rep(unsigned, unsigned) [string.cc:102]
    std::basic_string<char, std::char_traits<char>, std::allocator<char>><char, UserTraits<char>, std::allocator<char> >::basic_string<char, std::char_traits<char>, std::allocator<char>>[not-in-charge](char const*, unsigned, std::allocator<char> const&) [string.cc:180]
{noformat}
Travis Vitek made changes - 14/Feb/08 09:32 AM
Assignee Travis Vitek [ vitek ]
Travis Vitek made changes - 29/Feb/08 07:10 PM
Attachment stdcxx-597.patch [ 12367790 ]
Travis Vitek made changes - 29/Feb/08 07:32 PM
Time Spent 0.07h [ 240 ]
Remaining Estimate 2h [ 7200 ] 1.93h [ 6960 ]
Travis Vitek made changes - 29/Feb/08 07:33 PM
Time Spent 0.07h [ 240 ] 4h [ 14400 ]
Remaining Estimate 1.93h [ 6960 ] 0h [ 0 ]
Travis Vitek made changes - 07/Mar/08 12:36 AM
Fix Version/s 4.2.1 [ 12312690 ]
Patch Info [Patch Available]
Fix Version/s 4.3 [ 12312692 ]
Remaining Estimate 0h [ 0 ] 4h [ 14400 ]
Travis Vitek made changes - 11/Jul/09 12:06 AM
Assignee Travis Vitek [ vitek ]