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. On 03/08/2020 16.31, Ranier Vilela wrote:
Possible leaks: MonetDB-11.37.7\common\stream\stream.
1. At line 1306 if (stream_bzread(s, buf, 1, UTF8BOMLENGTH) == UTF8BOMLENGTH && strncmp(buf, UTF8BOM, UTF8BOMLENGTH) == 0) { s->isutf8 = true; } else if (s->stream_data.p) { bzp = s->stream_data.p; BZ2_bzReadClose(&err, bzp->b); rewind(bzp->f); bzp->b = BZ2_bzReadOpen(&err, bzp->f, 0, 0, NULL, 0); }
If stream_bzread at line 1302 is successful, and (s->stream_data.p) is not null at line 1305, bzp (original pointer malloc) is not lost at line 1306? bzp = s->stream_data.p;
2. At line 1322: if (err != BZ_OK) { stream_bzclose(s); destroy(s); return NULL; }
miss free(bzp);? destroy(s) do not free bzp, according, with line 1283.
3. At line 2350 miss free(c);
regards, Ranier Vilela
_______________________________________________ developers-list mailing list developers-list@monetdb.org https://www.monetdb.org/mailman/listinfo/developers-list
-- Sjoerd Mullender