Re: Avoid handle leak (src/bin/pg_ctl/pg_ctl.c) - Mailing list pgsql-hackers

From Ranier Vilela
Subject Re: Avoid handle leak (src/bin/pg_ctl/pg_ctl.c)
Date
Msg-id CAEudQArgkD_enPn99aLjqQs3Z1MT8YAGoRtxZvfyWN6vz5o7Gw@mail.gmail.com
Whole thread Raw
In response to Re: Avoid handle leak (src/bin/pg_ctl/pg_ctl.c)  (Michael Paquier <michael@paquier.xyz>)
Responses Re: Avoid handle leak (src/bin/pg_ctl/pg_ctl.c)
List pgsql-hackers


Em sex., 24 de out. de 2025 às 02:57, Michael Paquier <michael@paquier.xyz> escreveu:
On Thu, Oct 23, 2025 at 09:51:14PM -0300, Ranier Vilela wrote:
> The function *CreateRestrictedProcess* is responsible to create a
> restricted token
> Coverity complains that the handle origToken can be leaked.
>
> In case of failure of the functions *AllocateAndInitializeSid* or
> *GetPrivilegesToDelete*
> the handle origToken must be released.

pg_ctl exits quickly when a failure of CreateRestrictedProcess()
happens, hence why does it matter to close these handles as an exit()
should do the job as well?
Handles are a scarce Windows resource.
The work of freeing these resources is not done by exit(), but by Windows itself, when possible.
If applications are not good citizens, these resources will eventually run out.

best regards,
Ranier Vilela

pgsql-hackers by date:

Previous
From: Ranier Vilela
Date:
Subject: Re: Avoid resource leak (src/test/regress/pg_regress.c)
Next
From: "Daniel Verite"
Date:
Subject: Re: Unicode 17