Avoid resource leak (src/test/modules/test_binaryheap/test_binaryheap.c)

Started by Ranier Vilela7 months ago3 messageshackers
Jump to latest
#1Ranier Vilela
ranier.vf@gmail.com

Hi.

Per Coverity.

Coverity reports this resource leak in test_binaryheap module.
I think that is right.

Trivial patch attached.

best regards,
Ranier Vilela

Attachments:

avoid-resource-leak-test_binaryheap.patchapplication/octet-stream; name=avoid-resource-leak-test_binaryheap.patchDownload+6-0
#2Robert Haas
robertmhaas@gmail.com
In reply to: Ranier Vilela (#1)
Re: Avoid resource leak (src/test/modules/test_binaryheap/test_binaryheap.c)

On Fri, Sep 12, 2025 at 1:54 PM Ranier Vilela <ranier.vf@gmail.com> wrote:

Per Coverity.

Coverity reports this resource leak in test_binaryheap module.
I think that is right.

Trivial patch attached.

If this were correct, we'd need to also free the memory in all the
error paths. But of course, in both error and non-error paths, we rely
on memory context cleanup to free memory for us, except in cases where
there's some specific reason to believe that's not good enough. I
doubt that there is any such reason in this case.

See src/backend/utils/mmgr/README

--
Robert Haas
EDB: http://www.enterprisedb.com

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#2)
Re: Avoid resource leak (src/test/modules/test_binaryheap/test_binaryheap.c)

Robert Haas <robertmhaas@gmail.com> writes:

On Fri, Sep 12, 2025 at 1:54 PM Ranier Vilela <ranier.vf@gmail.com> wrote:

Coverity reports this resource leak in test_binaryheap module.
I think that is right.

If this were correct, we'd need to also free the memory in all the
error paths. But of course, in both error and non-error paths, we rely
on memory context cleanup to free memory for us, except in cases where
there's some specific reason to believe that's not good enough. I
doubt that there is any such reason in this case.

I agree this isn't interesting from a resource-leak perspective.
However, is it interesting from a test-coverage perspective?
AFAICS, test_binaryheap doesn't presently exercise binaryheap_free,
which seems a little sad for what's supposed to be a unit-test
module.

Of course, binaryheap_free is quite trivial and we do already
have coverage of it elsewhere. So I'm not super excited about
the omission.

regards, tom lane