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

Travis Vitek reopened STDCXX-857:
---------------------------------


Reopening due to potential memory leaks introduced indirectly by this change. 
Code in fmt_bits.cpp assumes that the buffer passed in to rw_asnprintf() will 
be deallocated as necessary. This was true previously, but that behavior 
changed with the previously committed fix. These functions need to be updated 
to deallocate existing buffers if the call to rw_asnprintf() allocates new ones.

> unexpected assertion from _rw_bufcat
> ------------------------------------
>
>                 Key: STDCXX-857
>                 URL: https://issues.apache.org/jira/browse/STDCXX-857
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: Test Driver
>    Affects Versions: 4.2.1
>            Reporter: Travis Vitek
>            Assignee: Travis Vitek
>             Fix For: 4.2.1
>
>         Attachments: stdcxx-857.patch
>
>   Original Estimate: 2h
>          Time Spent: 3.5h
>  Remaining Estimate: 0h
>
> Here is the assertion...
> {noformat}
> ..\..\..\tests\src\printf.cpp:486: char *__cdecl _rw_bufcat(struct Buffer 
> &,const char *,unsigned int): Assertion '0 == memcmp (*buf.pbuf + 
> *buf.pbufsize, guard, guardsize)' failed.
> {noformat}
> Here is a testcase...
> {noformat}
> #include <rw_printf.h>
> #include <string.h>
> #include <stdlib.h>
> int main (int argc, char* argv[])
> {
>     const char* s = 1 < argc ? argv [1] : "bug-zapper";
>     char buffer [4];
>     char *buf = buffer;
>     size_t bufsize = sizeof buffer;
>     rw_asnprintf (&buf, &bufsize, "%s", s);
>     if (buf != buffer)
>         free (buf);
>     return 0;
> }
> {noformat}

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

Reply via email to