Skip to content

Commit

Permalink
[Minor] Preserve old environ on exit
Browse files Browse the repository at this point in the history
  • Loading branch information
vstakhov committed Nov 16, 2023
1 parent d907a95 commit e1a73af
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion src/libutil/util.c
Original file line number Diff line number Diff line change
Expand Up @@ -533,10 +533,16 @@ void rspamd_signals_init(struct sigaction *signals, void (*sig_handler)(gint))
static gchar *title_buffer = NULL;
static size_t title_buffer_size = 0;
static gchar *title_progname, *title_progname_full;
gchar **old_environ = NULL;

static void
rspamd_title_dtor(gpointer d)
{
/* Restore old environment */
if (old_environ != NULL) {
environ = old_environ;
}

gchar **env = (gchar **) d;
guint i;

Expand Down Expand Up @@ -603,12 +609,14 @@ gint rspamd_init_title(rspamd_mempool_t *pool,
program_invocation_short_name = title_progname;
}

old_environ = environ;
environ = new_environ;
title_buffer = begin_of_buffer;
title_buffer_size = end_of_buffer - begin_of_buffer;

rspamd_mempool_add_destructor(pool,
rspamd_title_dtor, new_environ);
rspamd_title_dtor,
new_environ);
#endif

return 0;
Expand Down

0 comments on commit e1a73af

Please sign in to comment.