summaryrefslogtreecommitdiff
path: root/src/sort.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sort.c')
-rw-r--r--src/sort.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/sort.c b/src/sort.c
index 7c541d796..3b6cfb09b 100644
--- a/src/sort.c
+++ b/src/sort.c
@@ -528,11 +528,13 @@ zaptemp (const char *name)
if (node->name == name)
{
/* Unlink the temporary file in a critical section, to avoid races. */
+ struct tempnode *t = node->next;
sigprocmask (SIG_BLOCK, &caught_signals, &oldset);
unlink (name);
- if (! (*pnode = node->next))
- temptail = pnode;
+ *pnode = t;
sigprocmask (SIG_SETMASK, &oldset, NULL);
+ if (! t)
+ temptail = pnode;
free (node);
break;
}