mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-02 15:45:25 +00:00
3
CHANGES
3
CHANGES
@@ -1,3 +1,6 @@
|
|||||||
|
3079. [bug] Handle isc_event_allocate failures in t_tasks.
|
||||||
|
[RT #23572]
|
||||||
|
|
||||||
3078. [func] Added a new include file with function typedefs
|
3078. [func] Added a new include file with function typedefs
|
||||||
for the DLZ "dlopen" driver. [RT #23629]
|
for the DLZ "dlopen" driver. [RT #23629]
|
||||||
|
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: t_tasks.c,v 1.45 2011/03/14 14:10:23 fdupont Exp $ */
|
/* $Id: t_tasks.c,v 1.46 2011/03/18 07:40:25 marka Exp $ */
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
@@ -744,6 +744,14 @@ t_tasks3(void) {
|
|||||||
*/
|
*/
|
||||||
event = isc_event_allocate(mctx, &senders[1], event_type, t3_event1,
|
event = isc_event_allocate(mctx, &senders[1], event_type, t3_event1,
|
||||||
NULL, sizeof(*event));
|
NULL, sizeof(*event));
|
||||||
|
if (event == NULL) {
|
||||||
|
t_info("isc_event_allocate failed\n");
|
||||||
|
(void) isc_mutex_unlock(&T3_mx);
|
||||||
|
isc_task_destroy(&task);
|
||||||
|
isc_taskmgr_destroy(&tmgr);
|
||||||
|
isc_mem_destroy(&mctx);
|
||||||
|
return(T_UNRESOLVED);
|
||||||
|
}
|
||||||
isc_task_send(task, &event);
|
isc_task_send(task, &event);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -752,6 +760,14 @@ t_tasks3(void) {
|
|||||||
for (cnt = 0; cnt < T3_NEVENTS; ++cnt) {
|
for (cnt = 0; cnt < T3_NEVENTS; ++cnt) {
|
||||||
event = isc_event_allocate(mctx, &senders[1], event_type,
|
event = isc_event_allocate(mctx, &senders[1], event_type,
|
||||||
t3_event2, NULL, sizeof(*event));
|
t3_event2, NULL, sizeof(*event));
|
||||||
|
if (event == NULL) {
|
||||||
|
t_info("isc_event_allocate failed\n");
|
||||||
|
(void) isc_mutex_unlock(&T3_mx);
|
||||||
|
isc_task_destroy(&task);
|
||||||
|
isc_taskmgr_destroy(&tmgr);
|
||||||
|
isc_mem_destroy(&mctx);
|
||||||
|
return(T_UNRESOLVED);
|
||||||
|
}
|
||||||
isc_task_send(task, &event);
|
isc_task_send(task, &event);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -963,6 +979,15 @@ t_tasks4(void) {
|
|||||||
*/
|
*/
|
||||||
event = isc_event_allocate(mctx, &senders[1], event_type, t4_event1,
|
event = isc_event_allocate(mctx, &senders[1], event_type, t4_event1,
|
||||||
NULL, sizeof(*event));
|
NULL, sizeof(*event));
|
||||||
|
if (event == NULL) {
|
||||||
|
t_info("isc_event_allocate failed\n");
|
||||||
|
DESTROYLOCK(&T4_mx);
|
||||||
|
isc_task_destroy(&task);
|
||||||
|
(void) isc_condition_destroy(&T4_cv);
|
||||||
|
isc_taskmgr_destroy(&tmgr);
|
||||||
|
isc_mem_destroy(&mctx);
|
||||||
|
return(T_UNRESOLVED);
|
||||||
|
}
|
||||||
isc_task_send(task, &event);
|
isc_task_send(task, &event);
|
||||||
|
|
||||||
isc_task_shutdown(task);
|
isc_task_shutdown(task);
|
||||||
@@ -1171,6 +1196,15 @@ t_tasks7(void) {
|
|||||||
|
|
||||||
event = isc_event_allocate(mctx, &senders[1], event_type, t7_event1,
|
event = isc_event_allocate(mctx, &senders[1], event_type, t7_event1,
|
||||||
NULL, sizeof(*event));
|
NULL, sizeof(*event));
|
||||||
|
if (event == NULL) {
|
||||||
|
t_info("isc_event_allocate failed\n");
|
||||||
|
DESTROYLOCK(&T7_mx);
|
||||||
|
(void) isc_condition_destroy(&T7_cv);
|
||||||
|
isc_task_destroy(&task);
|
||||||
|
isc_taskmgr_destroy(&tmgr);
|
||||||
|
isc_mem_destroy(&mctx);
|
||||||
|
return(T_UNRESOLVED);
|
||||||
|
}
|
||||||
isc_task_send(task, &event);
|
isc_task_send(task, &event);
|
||||||
|
|
||||||
isc_task_shutdown(task);
|
isc_task_shutdown(task);
|
||||||
@@ -1495,6 +1529,16 @@ t_taskpurge_x(int sender, int type, int tag, void *purge_sender,
|
|||||||
event = isc_event_allocate(mctx, (void *)1, (isc_eventtype_t)T_CONTROL,
|
event = isc_event_allocate(mctx, (void *)1, (isc_eventtype_t)T_CONTROL,
|
||||||
t10_event1, NULL, sizeof(*event));
|
t10_event1, NULL, sizeof(*event));
|
||||||
|
|
||||||
|
if (event == NULL) {
|
||||||
|
t_info("isc_event_allocate failed\n");
|
||||||
|
isc_task_destroy(&task);
|
||||||
|
isc_taskmgr_destroy(&tmgr);
|
||||||
|
isc_mem_destroy(&mctx);
|
||||||
|
DESTROYLOCK(&T10_mx);
|
||||||
|
(void) isc_condition_destroy(&T10_cv);
|
||||||
|
++*nprobs;
|
||||||
|
return;
|
||||||
|
}
|
||||||
isc_task_send(task, &event);
|
isc_task_send(task, &event);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1512,6 +1556,17 @@ t_taskpurge_x(int sender, int type, int tag, void *purge_sender,
|
|||||||
(isc_eventtype_t)(type + type_cnt),
|
(isc_eventtype_t)(type + type_cnt),
|
||||||
t10_event2, NULL, sizeof(*event));
|
t10_event2, NULL, sizeof(*event));
|
||||||
|
|
||||||
|
if (eventtab[event_cnt] == NULL) {
|
||||||
|
t_info("isc_event_allocate failed\n");
|
||||||
|
isc_task_destroy(&task);
|
||||||
|
isc_taskmgr_destroy(&tmgr);
|
||||||
|
isc_mem_destroy(&mctx);
|
||||||
|
DESTROYLOCK(&T10_mx);
|
||||||
|
(void) isc_condition_destroy(&T10_cv);
|
||||||
|
++*nprobs;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
eventtab[event_cnt]->ev_tag =
|
eventtab[event_cnt]->ev_tag =
|
||||||
(void *)((uintptr_t)tag + tag_cnt);
|
(void *)((uintptr_t)tag + tag_cnt);
|
||||||
|
|
||||||
@@ -1883,11 +1938,28 @@ t_tasks11(int purgable) {
|
|||||||
*/
|
*/
|
||||||
event1 = isc_event_allocate(mctx, (void *)1, (isc_eventtype_t)1,
|
event1 = isc_event_allocate(mctx, (void *)1, (isc_eventtype_t)1,
|
||||||
t11_event1, NULL, sizeof(*event1));
|
t11_event1, NULL, sizeof(*event1));
|
||||||
|
if (event1 == NULL) {
|
||||||
|
t_info("isc_event_allocate failed\n");
|
||||||
|
isc_task_destroy(&task);
|
||||||
|
isc_taskmgr_destroy(&tmgr);
|
||||||
|
isc_mem_destroy(&mctx);
|
||||||
|
DESTROYLOCK(&T11_mx);
|
||||||
|
(void) isc_condition_destroy(&T11_cv);
|
||||||
|
return(T_UNRESOLVED);
|
||||||
|
}
|
||||||
isc_task_send(task, &event1);
|
isc_task_send(task, &event1);
|
||||||
|
|
||||||
event2 = isc_event_allocate(mctx, (void *)1, (isc_eventtype_t)1,
|
event2 = isc_event_allocate(mctx, (void *)1, (isc_eventtype_t)1,
|
||||||
t11_event2, NULL, sizeof(*event2));
|
t11_event2, NULL, sizeof(*event2));
|
||||||
|
if (event2 == NULL) {
|
||||||
|
t_info("isc_event_allocate failed\n");
|
||||||
|
isc_task_destroy(&task);
|
||||||
|
isc_taskmgr_destroy(&tmgr);
|
||||||
|
isc_mem_destroy(&mctx);
|
||||||
|
DESTROYLOCK(&T11_mx);
|
||||||
|
(void) isc_condition_destroy(&T11_cv);
|
||||||
|
return(T_UNRESOLVED);
|
||||||
|
}
|
||||||
event2_clone = event2;
|
event2_clone = event2;
|
||||||
if (purgable)
|
if (purgable)
|
||||||
event2->ev_attributes &= ~ISC_EVENTATTR_NOPURGE;
|
event2->ev_attributes &= ~ISC_EVENTATTR_NOPURGE;
|
||||||
|
Reference in New Issue
Block a user