You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by "Farid Zaripov (JIRA)" <ji...@apache.org> on 2007/11/12 15:42:51 UTC

[jira] Resolved: (STDCXX-584) purify reports memory leak from __rw_vfmtwhat in 18.exception test

     [ https://issues.apache.org/jira/browse/STDCXX-584?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Farid Zaripov resolved STDCXX-584.
----------------------------------

    Resolution: Fixed

> purify reports memory leak from __rw_vfmtwhat in 18.exception test
> ------------------------------------------------------------------
>
>                 Key: STDCXX-584
>                 URL: https://issues.apache.org/jira/browse/STDCXX-584
>             Project: C++ Standard Library
>          Issue Type: Improvement
>          Components: Tests
>    Affects Versions: 4.2.0
>            Reporter: Travis Vitek
>            Assignee: Travis Vitek
>            Priority: Trivial
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-584.patch
>
>
> The library uses a system of functions for platforms that don't support exceptions. The __rw_throw function calls __rw_vfmtwhat() to get a string describing the exception that has occured. Under some conditions the string is allocated from the heap as an array of characters. Eventually __rw_throw invokes a function via pointer (__rw_throw_proc) that is supposed to process the exception (possibly by throwing a real exception object). Unfortunately the test does not deallocate the string that was allocated by __rw_vfmtwhat().
> Purify: Searching for all memory leaks...
> Memory leaked: 3072 bytes (25.6%); potentially leaked: 0 bytes (0%)
> wLK: 3072 bytes leaked in 12 blocks
>   * This memory was allocated from:
>     malloc         [rtlib.o]
>     operator new(unsigned) [libstd15d.so]
>     operator new [](unsigned) [libstd15d.so]
>     __rw::__rw_vfmtwhat(char*, unsigned, char const*, char*) [exception.cpp:479]
>     __rw::__rw_throw(int, ...) [exception.cpp:825]
>     test_rw_throw() [18.exception.cpp:527]
>   * Block of 256 bytes (12 times); last block at 0x8118de0

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