Em ter., 4 de ago. de 2020 às 13:06, Sjoerd Mullender <sjoerd@monetdb.org> escreveu:


On 04/08/2020 17.34, Ranier Vilela wrote:
> Em seg., 3 de ago. de 2020 às 12:47, Sjoerd Mullender
> <sjoerd@monetdb.org <mailto:sjoerd@monetdb.org>> escreveu:
>
>     I don't think there is a leak.
>
>     A little higher in the function, before all the conditions that you're
>     looking at, there is the statement
>             s->stream_data.p = (void *) bzp;
>     so bzp is saved first and s->stream_data.p and bzp are actually the same
>     pointer.
>     I'm not sure why the assignment you're referring to since they are
>     already the same.  It could be historical, but I'd have to look at
>     the logs.
>
> And about 2 and 3?

About 2: The call to stream_bzclose calls free(s-stream_data.p) which is
the same as bzp, so that gets freed.

About 3: c is assigned to s->stream_data.p about half way in the
function.  As long as s doesn't get freed without first freeing
s->stream_data.p, we're good.  And freeing s->stream_data.p happens in
curl_destroy when that gets called.
Nice, Thank you.

regards,
Ranier Vilela