
|
If you were logged in you would be able to see more operations.
|
|
|
| Patch Info: |
Patch Available
|
| Severity: |
Incorrect Behavior
|
| Resolution Date: |
12/Nov/07 02:37 PM
|
An rw_assert indexes past the end of an array if the preceeding for loop does not experience a failure.
-
-
-
- Purify instrumented ./25.remove (pid 19671) ****
ABR: Array bounds read:
- This is occurring while in thread 19671:
test_remove<FwdIter<UserClass>, UserClass, EqualityPredicate<UserClass> >(int, char const*, char, unsigned, FwdIter<UserClass>, NoIterator, UserClass const*, UserClass const*, RemoveTag) [25.remove.cpp:213]
test_remove<FwdIter<UserClass>, NoIterator, UserClass, EqualityPredicate<UserClass>, RemoveTag >(FwdIter<UserClass>, UserClass, NoIterator const*, UserClass const*, EqualityPredicate<UserClass>) [25.remove.cpp:384]
test_remove<UserClass, EqualityPredicate<UserClass>, RemoveTag >(UserClass const*, EqualityPredicate<UserClass> const*, UserClass) [25.remove.cpp:440]
test_remove<UserClass>(UserClass const*) [25.remove.cpp:471]
run_test(int, char**) [25.remove.cpp:590]
unknown func [pc=0x81201a8]
- Reading 4 bytes from 0x81b88f8 in the heap.
- Address 0x81b88f8 is 5 bytes past end of a malloc'd block at 0x81b88c0 of 52 bytes.
- This block was allocated from thread -1207973632:
malloc [rtlib.o]
operator new(unsigned) [libstd15d.so]
operator new [](unsigned) [libstd15d.so]
UserClass* __rw_from_char<UserClass>(UserClass*, char const*, unsigned, bool) [value.cpp:485]
UserClass::from_char(char const*, unsigned, bool) [value.cpp:533]
test_remove<FwdIter<UserClass>, UserClass, EqualityPredicate<UserClass> >(int, char const*, char, unsigned, FwdIter<UserClass>, NoIterator, UserClass const*, UserClass const*, RemoveTag) [25.remove.cpp:153]
|
|
Description
|
An rw_assert indexes past the end of an array if the preceeding for loop does not experience a failure.
-
-
-
- Purify instrumented ./25.remove (pid 19671) ****
ABR: Array bounds read:
- This is occurring while in thread 19671:
test_remove<FwdIter<UserClass>, UserClass, EqualityPredicate<UserClass> >(int, char const*, char, unsigned, FwdIter<UserClass>, NoIterator, UserClass const*, UserClass const*, RemoveTag) [25.remove.cpp:213]
test_remove<FwdIter<UserClass>, NoIterator, UserClass, EqualityPredicate<UserClass>, RemoveTag >(FwdIter<UserClass>, UserClass, NoIterator const*, UserClass const*, EqualityPredicate<UserClass>) [25.remove.cpp:384]
test_remove<UserClass, EqualityPredicate<UserClass>, RemoveTag >(UserClass const*, EqualityPredicate<UserClass> const*, UserClass) [25.remove.cpp:440]
test_remove<UserClass>(UserClass const*) [25.remove.cpp:471]
run_test(int, char**) [25.remove.cpp:590]
unknown func [pc=0x81201a8]
- Reading 4 bytes from 0x81b88f8 in the heap.
- Address 0x81b88f8 is 5 bytes past end of a malloc'd block at 0x81b88c0 of 52 bytes.
- This block was allocated from thread -1207973632:
malloc [rtlib.o]
operator new(unsigned) [libstd15d.so]
operator new [](unsigned) [libstd15d.so]
UserClass* __rw_from_char<UserClass>(UserClass*, char const*, unsigned, bool) [value.cpp:485]
UserClass::from_char(char const*, unsigned, bool) [value.cpp:533]
test_remove<FwdIter<UserClass>, UserClass, EqualityPredicate<UserClass> >(int, char const*, char, unsigned, FwdIter<UserClass>, NoIterator, UserClass const*, UserClass const*, RemoveTag) [25.remove.cpp:153]
|
Show » |
made changes - 24/Oct/07 11:29 PM
| Field |
Original Value |
New Value |
|
Attachment
|
|
stdcxx-619.patch
[ 12368334
]
|
made changes - 24/Oct/07 11:30 PM
|
Assignee
|
|
Travis Vitek
[ vitek
]
|
made changes - 25/Oct/07 12:31 AM
|
Attachment
|
stdcxx-619.patch
[ 12368334
]
|
|
made changes - 25/Oct/07 05:42 PM
|
Patch Info
|
|
[Patch Available]
|
made changes - 12/Nov/07 02:37 PM
|
Resolution
|
|
Fixed
[ 1
]
|
|
Status
|
Open
[ 1
]
|
Resolved
[ 5
]
|
made changes - 12/Nov/07 02:37 PM
|
Status
|
Resolved
[ 5
]
|
Closed
[ 6
]
|
|