diff --git a/src/basic/process-util.c b/src/basic/process-util.c index 5c56a59aab..06493f7799 100644 --- a/src/basic/process-util.c +++ b/src/basic/process-util.c @@ -1620,8 +1620,10 @@ bool invoked_as(char *argv[], const char *token) { _noreturn_ void freeze(void) { log_close(); - /* Make sure nobody waits for us on a socket anymore */ - (void) close_all_fds(NULL, 0); + /* Make sure nobody waits for us (i.e. on one of our sockets) anymore. Note that we use + * close_all_fds_without_malloc() instead of plain close_all_fds() here, since we want this function + * to be compatible with being called from signal handlers. */ + (void) close_all_fds_without_malloc(NULL, 0); /* Let's not freeze right away, but keep reaping zombies. */ for (;;) {