diff options
author | wiz <wiz@pkgsrc.org> | 2004-09-09 22:25:16 +0000 |
---|---|---|
committer | wiz <wiz@pkgsrc.org> | 2004-09-09 22:25:16 +0000 |
commit | 4e096b8547296dc256964192cf8c8cd91590bd95 (patch) | |
tree | 4dd6ee735a8ecf7954aecfb45140d9598b13893d | |
parent | 7b9b305e16f54ccedab93d5dbcdf79cb4eb4115b (diff) | |
download | pkgsrc-4e096b8547296dc256964192cf8c8cd91590bd95.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.
-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; |