You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by "Travis Vitek (JIRA)" <ji...@apache.org> on 2007/10/25 01:16:54 UTC

[jira] Created: (STDCXX-619) purify reports array bounds read error in 25.remove test

purify reports array bounds read error in 25.remove test
--------------------------------------------------------

                 Key: STDCXX-619
                 URL: https://issues.apache.org/jira/browse/STDCXX-619
             Project: C++ Standard Library
          Issue Type: Improvement
          Components: Tests
    Affects Versions: 4.2
            Reporter: Travis Vitek
            Priority: Minor
             Fix For: 4.2.1


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]


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (STDCXX-619) purify reports array bounds read error in 25.remove test

Posted by "Farid Zaripov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Farid Zaripov resolved STDCXX-619.
----------------------------------

    Resolution: Fixed

> purify reports array bounds read error in 25.remove test
> --------------------------------------------------------
>
>                 Key: STDCXX-619
>                 URL: https://issues.apache.org/jira/browse/STDCXX-619
>             Project: C++ Standard Library
>          Issue Type: Improvement
>          Components: Tests
>    Affects Versions: 4.2.0
>            Reporter: Travis Vitek
>            Assignee: Travis Vitek
>            Priority: Minor
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-619.patch
>
>
> 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]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (STDCXX-619) purify reports array bounds read error in 25.remove test

Posted by "Farid Zaripov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/STDCXX-619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12537960 ] 

Farid Zaripov commented on STDCXX-619:
--------------------------------------

Fixed thus: http://svn.apache.org/viewvc?rev=588637&view=rev

> purify reports array bounds read error in 25.remove test
> --------------------------------------------------------
>
>                 Key: STDCXX-619
>                 URL: https://issues.apache.org/jira/browse/STDCXX-619
>             Project: C++ Standard Library
>          Issue Type: Improvement
>          Components: Tests
>    Affects Versions: 4.2
>            Reporter: Travis Vitek
>            Assignee: Travis Vitek
>            Priority: Minor
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-619.patch
>
>
> 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]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (STDCXX-619) purify reports array bounds read error in 25.remove test

Posted by "Farid Zaripov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Farid Zaripov closed STDCXX-619.
--------------------------------


> purify reports array bounds read error in 25.remove test
> --------------------------------------------------------
>
>                 Key: STDCXX-619
>                 URL: https://issues.apache.org/jira/browse/STDCXX-619
>             Project: C++ Standard Library
>          Issue Type: Improvement
>          Components: Tests
>    Affects Versions: 4.2.0
>            Reporter: Travis Vitek
>            Assignee: Travis Vitek
>            Priority: Minor
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-619.patch
>
>
> 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]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (STDCXX-619) purify reports array bounds read error in 25.remove test

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Travis Vitek updated STDCXX-619:
--------------------------------

    Attachment: stdcxx-619.patch

Simply avoid the unnecessarily accessing the array inappropriately. I could have opted to add an else with a different assertion to keep the assertion count consistent, but that seems unnecessary.

> purify reports array bounds read error in 25.remove test
> --------------------------------------------------------
>
>                 Key: STDCXX-619
>                 URL: https://issues.apache.org/jira/browse/STDCXX-619
>             Project: C++ Standard Library
>          Issue Type: Improvement
>          Components: Tests
>    Affects Versions: 4.2
>            Reporter: Travis Vitek
>            Priority: Minor
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-619.patch
>
>
> 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]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (STDCXX-619) purify reports array bounds read error in 25.remove test

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Travis Vitek updated STDCXX-619:
--------------------------------

    Patch Info: [Patch Available]

> purify reports array bounds read error in 25.remove test
> --------------------------------------------------------
>
>                 Key: STDCXX-619
>                 URL: https://issues.apache.org/jira/browse/STDCXX-619
>             Project: C++ Standard Library
>          Issue Type: Improvement
>          Components: Tests
>    Affects Versions: 4.2
>            Reporter: Travis Vitek
>            Assignee: Travis Vitek
>            Priority: Minor
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-619.patch
>
>
> 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]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Issue Comment Edited: (STDCXX-619) purify reports array bounds read error in 25.remove test

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/STDCXX-619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12537457 ] 

vitek edited comment on STDCXX-619 at 10/25/07 10:43 AM:
----------------------------------------------------------------

Simply avoid accessing the array inappropriately. I could have opted to add an else with a different assertion to keep the assertion count consistent, but that seems unnecessary.

      was (Author: vitek):
    Simply avoid the unnecessarily accessing the array inappropriately. I could have opted to add an else with a different assertion to keep the assertion count consistent, but that seems unnecessary.
  
> purify reports array bounds read error in 25.remove test
> --------------------------------------------------------
>
>                 Key: STDCXX-619
>                 URL: https://issues.apache.org/jira/browse/STDCXX-619
>             Project: C++ Standard Library
>          Issue Type: Improvement
>          Components: Tests
>    Affects Versions: 4.2
>            Reporter: Travis Vitek
>            Assignee: Travis Vitek
>            Priority: Minor
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-619.patch
>
>
> 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]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (STDCXX-619) purify reports array bounds read error in 25.remove test

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Travis Vitek updated STDCXX-619:
--------------------------------

    Attachment: stdcxx-619.patch

> purify reports array bounds read error in 25.remove test
> --------------------------------------------------------
>
>                 Key: STDCXX-619
>                 URL: https://issues.apache.org/jira/browse/STDCXX-619
>             Project: C++ Standard Library
>          Issue Type: Improvement
>          Components: Tests
>    Affects Versions: 4.2
>            Reporter: Travis Vitek
>            Assignee: Travis Vitek
>            Priority: Minor
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-619.patch
>
>
> 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]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (STDCXX-619) purify reports array bounds read error in 25.remove test

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Travis Vitek updated STDCXX-619:
--------------------------------

    Attachment:     (was: stdcxx-619.patch)

> purify reports array bounds read error in 25.remove test
> --------------------------------------------------------
>
>                 Key: STDCXX-619
>                 URL: https://issues.apache.org/jira/browse/STDCXX-619
>             Project: C++ Standard Library
>          Issue Type: Improvement
>          Components: Tests
>    Affects Versions: 4.2
>            Reporter: Travis Vitek
>            Assignee: Travis Vitek
>            Priority: Minor
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-619.patch
>
>
> 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]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (STDCXX-619) purify reports array bounds read error in 25.remove test

Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/STDCXX-619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12538028 ] 

Martin Sebor commented on STDCXX-619:
-------------------------------------

Farid, please remember to attribute patches to their authors.
Travis, please remember to provide ChangeLogs for your patches.

> purify reports array bounds read error in 25.remove test
> --------------------------------------------------------
>
>                 Key: STDCXX-619
>                 URL: https://issues.apache.org/jira/browse/STDCXX-619
>             Project: C++ Standard Library
>          Issue Type: Improvement
>          Components: Tests
>    Affects Versions: 4.2
>            Reporter: Travis Vitek
>            Assignee: Travis Vitek
>            Priority: Minor
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-619.patch
>
>
> 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]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (STDCXX-619) purify reports array bounds read error in 25.remove test

Posted by "Farid Zaripov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/STDCXX-619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12537952 ] 

Farid Zaripov commented on STDCXX-619:
--------------------------------------

I'd rather moved the rw_assert()'s into the for-loop body, instead of skipping them if !success.

So that rw_assert()'s will be invoked independently from the success value and iff the loop body was entered, instead of invoking the rw_assert()'s on !success.

Also I've added the two "success = true;" before loop, because the rw_assert()'s which follows that loop's may use the previous success value when the loop was iterated 0 times.

> purify reports array bounds read error in 25.remove test
> --------------------------------------------------------
>
>                 Key: STDCXX-619
>                 URL: https://issues.apache.org/jira/browse/STDCXX-619
>             Project: C++ Standard Library
>          Issue Type: Improvement
>          Components: Tests
>    Affects Versions: 4.2
>            Reporter: Travis Vitek
>            Assignee: Travis Vitek
>            Priority: Minor
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-619.patch
>
>
> 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]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (STDCXX-619) purify reports array bounds read error in 25.remove test

Posted by "Travis Vitek (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Travis Vitek reassigned STDCXX-619:
-----------------------------------

    Assignee: Travis Vitek

> purify reports array bounds read error in 25.remove test
> --------------------------------------------------------
>
>                 Key: STDCXX-619
>                 URL: https://issues.apache.org/jira/browse/STDCXX-619
>             Project: C++ Standard Library
>          Issue Type: Improvement
>          Components: Tests
>    Affects Versions: 4.2
>            Reporter: Travis Vitek
>            Assignee: Travis Vitek
>            Priority: Minor
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-619.patch
>
>
> 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]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.