diff options
author | wiz <wiz> | 2004-09-09 22:25:16 +0000 |
---|---|---|
committer | wiz <wiz> | 2004-09-09 22:25:16 +0000 |
commit | 7cb1d637de5ff887e09030ea0f71421e8b204f5f (patch) | |
tree | 4dd6ee735a8ecf7954aecfb45140d9598b13893d /devel | |
parent | 80daa25c9fb1098c46759c396cd3141a589a194f (diff) | |
download | pkgsrc-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-ad | 16 |
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; |