forgot to cvs add patch
This commit is contained in:
parent
d63a939081
commit
026a5d2835
@ -0,0 +1,49 @@
|
||||
From 455d44d9618afdc1d1f4198ae9f64ccc56dee62f Mon Sep 17 00:00:00 2001
|
||||
From: Rusty Russell <rusty@rustcorp.com.au>
|
||||
Date: Tue, 22 Sep 2009 10:32:10 +0930
|
||||
Subject: [PATCH] lib/tevent: a cleaner fix for be4ac227842530d484659f2db683453366326d8b segv
|
||||
|
||||
Revert 23abcd2318c69753aa2a144e1dc0f9cf9efdb705 and fix logic bug.
|
||||
|
||||
The current code loops through the event contexts, when it sees a different
|
||||
one, it notifies the current one (ev) and updates ev to point to the new one.
|
||||
|
||||
This is dumb, because:
|
||||
(1) ev starts as NULL, so this code crashes, and
|
||||
(2) The final context will not be notified.
|
||||
|
||||
The correct fix for this is to update ev to the new one, then notify it.
|
||||
Volker's fix works because we currently always have one event context.
|
||||
|
||||
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
|
||||
---
|
||||
lib/tevent/tevent_signal.c | 8 +-------
|
||||
1 files changed, 1 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/lib/tevent/tevent_signal.c b/lib/tevent/tevent_signal.c
|
||||
index 0ca2a27..d3325b6 100644
|
||||
--- a/lib/tevent/tevent_signal.c
|
||||
+++ b/lib/tevent/tevent_signal.c
|
||||
@@ -90,18 +90,12 @@ static void tevent_common_signal_handler(int signum)
|
||||
SIG_INCREMENT(sig_state->signal_count[signum]);
|
||||
SIG_INCREMENT(sig_state->got_signal);
|
||||
|
||||
- if (sig_state->sig_handlers[signum] != NULL) {
|
||||
- ev = sig_state->sig_handlers[signum]->se->event_ctx;
|
||||
- /* doesn't matter if this pipe overflows */
|
||||
- res = write(ev->pipe_fds[1], &c, 1);
|
||||
- }
|
||||
-
|
||||
/* Write to each unique event context. */
|
||||
for (sl = sig_state->sig_handlers[signum]; sl; sl = sl->next) {
|
||||
if (sl->se->event_ctx != ev) {
|
||||
+ ev = sl->se->event_ctx;
|
||||
/* doesn't matter if this pipe overflows */
|
||||
res = write(ev->pipe_fds[1], &c, 1);
|
||||
- ev = sl->se->event_ctx;
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
1.6.2.5
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
Name: libtevent
|
||||
Version: 0.9.8
|
||||
Release: 3%{?dist}
|
||||
Release: 4%{?dist}
|
||||
Group: System Environment/Daemons
|
||||
Summary: The tevent library
|
||||
License: LGPLv3+
|
||||
@ -70,7 +70,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
%changelog
|
||||
* Wed Sep 23 2009 Simo Sorce <ssorce@redhat.com> - 0.9.8-3
|
||||
* Wed Sep 23 2009 Simo Sorce <ssorce@redhat.com> - 0.9.8-4
|
||||
- Add patch to fix a segfault case
|
||||
|
||||
* Wed Sep 16 2009 Simo Sorce <ssorce@redhat.com> - 0.9.8-2
|
||||
|
||||
Loading…
Reference in New Issue
Block a user