(struct tempnode.next): Now volatile.
(zaptemp): Free the file name after removing it from the temp list,
not before, because a signal can arrive between the two actions
and cleanup () traverses the list.
static struct tempnode
{
char *name;
- struct tempnode *next;
+ struct tempnode * volatile next;
} temphead;
/* Clean up any remaining temporary files. */
{
temp = node->next;
unlink (temp->name);
- free (temp->name);
node->next = temp->next;
+ free (temp->name);
free ((char *) temp);
}
}