diff --git a/src/frontend/inp.c b/src/frontend/inp.c index bf6d954d5..38118347a 100644 --- a/src/frontend/inp.c +++ b/src/frontend/inp.c @@ -1122,7 +1122,8 @@ inp_spsource(FILE *fp, bool comfile, char *filename, bool intfile) inputdir = dir_name; #endif if (cp_getvar("controlswait", CP_BOOL, NULL, 0)) { - exec_controls(wl_copy(wl)); + if (wl) + exec_controls(wl_copy(wl)); break; } else diff --git a/src/sharedspice.c b/src/sharedspice.c index 4d7e52514..af9dccd02 100644 --- a/src/sharedspice.c +++ b/src/sharedspice.c @@ -485,6 +485,7 @@ _cthread_run(void *controls) #ifdef HAVE_LIBPTHREAD cont_condition = FALSE; #endif + wl_free(controls); return NULL; } @@ -608,6 +609,7 @@ exec_controls(wordlist *newcontrols) wordlist *wl; for (wl = shcontrols; wl; wl = wl->wl_next) cp_evloop(wl->wl_word); + wl_free(shcontrols); #endif }