summaryrefslogtreecommitdiff
path: root/devel
diff options
context:
space:
mode:
authorwiz <wiz>2004-09-09 22:25:16 +0000
committerwiz <wiz>2004-09-09 22:25:16 +0000
commit7cb1d637de5ff887e09030ea0f71421e8b204f5f (patch)
tree4dd6ee735a8ecf7954aecfb45140d9598b13893d /devel
parent80daa25c9fb1098c46759c396cd3141a589a194f (diff)
downloadpkgsrc-7cb1d637de5ff887e09030ea0f71421e8b204f5f.tar.gz
From otto@OpenBSD:
Do not evaluate this->next after calling the handler; the handler may have clobbered it. Resolves core dumps of cvs server on user ^C.
Diffstat (limited to 'devel')
-rw-r--r--devel/cvs/patches/patch-ad16
1 files changed, 16 insertions, 0 deletions
diff --git a/devel/cvs/patches/patch-ad b/devel/cvs/patches/patch-ad
new file mode 100644
index 00000000000..3d71fb61bbd
--- /dev/null
+++ b/devel/cvs/patches/patch-ad
@@ -0,0 +1,16 @@
+$NetBSD: patch-ad,v 1.7 2004/09/09 22:25:16 wiz Exp $
+
+--- lib/sighandle.c.orig 2004-02-03 15:37:50.000000000 +0100
++++ lib/sighandle.c
+@@ -155,8 +155,10 @@ int sig;
+ this = SIG_handlers[sig];
+ while (this != (struct SIG_hlist *) NULL)
+ {
+- (*this->handler)(sig);
++ /* handler may free this (and thus clobber this->next) */
++ struct SIG_hlist *current = this;
+ this = this->next;
++ (*current->handler)(sig);
+ }
+
+ return;