mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-01 22:05:08 +00:00
b0642e71dd
There is serious bug in handling requests in AATV module of AA_FORK and AA_FREPLAY types in Merit AAA server. If AATV module not responding for a long time main server drops original request without cleaning some critical information (process counter aatv->proc_cnt). As a result after some definite number of timeouts server stops responding. PR: 23212 Submitted by: Andriy I Pilipenko <bamby@marka.net.ua>
40 lines
1.4 KiB
Plaintext
40 lines
1.4 KiB
Plaintext
--- src/radiusd.c.orig Mon Jul 27 15:52:37 1998
|
|
+++ src/radiusd.c Sun Dec 10 17:04:17 2000
|
|
@@ -793,6 +793,19 @@
|
|
sigaction (SIGIOT, &action, NULL); /* Perhaps also known as SIGABRT ! */
|
|
sigaction (SIGFPE, &action, NULL);
|
|
|
|
+ /* the max number of open files should never be used as an argument
|
|
+ * for select(). On systems that support more than 256 open files
|
|
+ * select() is not able to handle that many fd's.
|
|
+ * In this case the max. number of fd's for select should not be
|
|
+ * set to the maximum number of descriptors.
|
|
+ * Since I'm too lazy to correct the code I set dtablesize to
|
|
+ * FD_SETSIZE. This is the only portable way to use select() on
|
|
+ * all descriptors. See also "Advanced Programming in the Unix
|
|
+ * Environment" (from W. Richard Stevens) and the BSD 4.4 manpage for
|
|
+ * select(2).
|
|
+ */
|
|
+ dtablesize = FD_SETSIZE;
|
|
+#ifdef BOGUS_CODE
|
|
#ifdef _SC_OPEN_MAX
|
|
if ((dtablesize = sysconf (_SC_OPEN_MAX)) == -1)
|
|
{
|
|
@@ -802,6 +815,7 @@
|
|
#else /* Assume BSD */
|
|
dtablesize = getdtablesize ();
|
|
#endif /* _SC_OPEN_MAX */
|
|
+#endif /* BOGUS_CODE */
|
|
|
|
for (j = dtablesize; j >= 3; j--)
|
|
{
|
|
@@ -4467,7 +4481,7 @@
|
|
while ((event = authreq->event_q) != (EVENT_ENT *) NULL)
|
|
{
|
|
authreq->event_q = event->next;
|
|
- free_event_final (event);
|
|
+ free_event (event);
|
|
}
|
|
|
|
while ((event = authreq->freed_events) != (EVENT_ENT *) NULL)
|