/** Close any log handlers added by add_temp_log or marked by mark_logs_temp */
void close_temp_logs(void)
{
- logfile_t *victim, *lf;
- for (lf = logfiles; lf; ) {
- if (lf->is_temporary) {
- victim = lf;
- lf = lf->next;
- close_log(victim);
- tor_free(victim->filename);
- tor_free(victim);
+ logfile_t *lf, **p;
+ for (p = &logfiles; *p; ) {
+ if ((*p)->is_temporary) {
+ lf = *p;
+ *p = (*p)->next;
+ close_log(lf);
+ tor_free(lf->filename);
+ tor_free(lf);
} else {
- lf = lf->next;
+ p = &((*p)->next);
}
}
}