mirror of
https://github.com/SELinuxProject/selinux
synced 2025-01-24 06:12:46 +00:00
libsemanage: genhomedircon: fix possible double-free
When write_contexts() frees variables context and new_context_str after a line has been successfully emitted, these variables are not reset to NULL. This leads the function to free them again if an error occurs when processing the next line. Fix this by always resetting these variables at the beginning of the loop. This issue has been found using clang's static analyzer. Signed-off-by: Nicolas Iooss <nicolas.iooss@m4x.org>
This commit is contained in:
parent
85da6194ea
commit
03298a22f7
@ -607,10 +607,12 @@ static int write_contexts(genhomedircon_settings_t *s, FILE *out,
|
||||
const genhomedircon_user_entry_t *user)
|
||||
{
|
||||
char *line, *temp;
|
||||
sepol_context_t *context = NULL;
|
||||
char *new_context_str = NULL;
|
||||
sepol_context_t *context;
|
||||
char *new_context_str;
|
||||
|
||||
for (; tpl; tpl = tpl->next) {
|
||||
context = NULL;
|
||||
new_context_str = NULL;
|
||||
line = replace_all(tpl->data, repl);
|
||||
if (!line) {
|
||||
goto fail;
|
||||
|
Loading…
Reference in New Issue
Block a user