[PATCH] idle module segfault fix
Stefan (metze) Metzmacher
metze at metzemix.de
Wed Sep 17 10:00:13 GMT 2003
Hi Jelmer,
I noticed a bug in the smb_run_idle_events() fn.
if a event unregisters itself we'll segfault...
also if a invalid interval was spacified we now
use SMB_IDLE_EVENT_DEFAULT_INTERVAL.
here's a patch
--
metze
-------------------------------------------
Stefan (metze) Metzmacher <metze at metzemix.de>
-------------- next part --------------
Index: source/lib/module.c
===================================================================
RCS file: /cvsroot/samba/source/lib/module.c,v
retrieving revision 1.6.2.12
diff -u -r1.6.2.12 module.c
--- source/lib/module.c 15 Sep 2003 00:19:25 -0000 1.6.2.12
+++ source/lib/module.c 17 Sep 2003 09:27:37 -0000
@@ -210,18 +210,21 @@
struct smb_idle_list_ent *event = smb_idle_event_list;
while (event) {
+ struct smb_idle_list_ent *next = event->next;
time_t interval;
- if (event->interval >= SMB_IDLE_EVENT_MIN_INTERVAL) {
+ if (event->interval <= 0) {
+ interval = SMB_IDLE_EVENT_DEFAULT_INTERVAL;
+ } else if (event->interval >= SMB_IDLE_EVENT_MIN_INTERVAL) {
interval = event->interval;
} else {
interval = SMB_IDLE_EVENT_MIN_INTERVAL;
}
if (now >(event->lastrun+interval)) {
- event->fn(&event->data,&event->interval,now);
event->lastrun = now;
+ event->fn(&event->data,&event->interval,now);
}
- event = event->next;
+ event = next;
}
return;
More information about the samba-technical
mailing list