tag 79780 notabug
close 79780
stop

details below...

On 07/11/2025 10:28, Ray steven wrote:
Subject: [BUG] Resource leak in change_file_context() in src/chcon.c
(coreutils 9.x)

Hello Coreutils maintainers,

I discovered a potential resource leak at lines 170-171 in the function
`change_file_context()` in `src/chcon.c`.

Bug Summary
------------
A resource leak occurs when `specified_context` is NULL and
`compute_context_from_mask()` fails. In this error path, the previously
obtained `file_context` (via `getfileconat()` or `lgetfileconat()`) is not
released, resulting in a memory leak. According to the official
documentation, the caller must use `freecon()` to manually release the
memory returned by `getfileconat()` or `lgetfileconat()`.

Suggested Fix
-------------
Call `freecon(file_context);` before returning when
`compute_context_from_mask()` fails. For example:

     if (compute_context_from_mask(file_context, &context) != 0)
     {
         freecon(file_context);
         return 1;
     }

compute_context_from_mask() will do the free upon failure,
so there is no need for the explicit freecon() in this case.

thanks,
Padraig



Reply via email to