--- signal.c.orig 2003-05-25 07:12:46.000000000 -0400
+++ signal.c 2003-05-25 07:15:02.000000000 -0400
@@ -885,11 +885,13 @@
break;
}
+ if (error) {
+ spin_unlock_irq(¤t->sigmask_lock);
+ goto out;
+ }
current->blocked = new_set;
recalc_sigpending(current);
spin_unlock_irq(¤t->sigmask_lock);
- if (error)
- goto out;
if (oset)
goto set_old;
} else if (oset) {