]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
check the returns from isc_task_beginexclusive
authorMark Andrews <marka@isc.org>
Thu, 28 Feb 2013 02:14:52 +0000 (13:14 +1100)
committerMark Andrews <marka@isc.org>
Thu, 28 Feb 2013 02:14:52 +0000 (13:14 +1100)
lib/dns/adb.c

index 7e3eced0c0131a43ef534433d0a88ce2f3f52c74..c5aa29d67a4af382bd55ec137d48828dca3ea710 100644 (file)
@@ -539,7 +539,9 @@ grow_entries(isc_task_t *task, isc_event_t *ev) {
 
        isc_event_free(&ev);
 
-       isc_task_beginexclusive(task);
+       result = isc_task_beginexclusive(task);
+       if (result != ISC_R_SUCCESS)
+               goto check_exit;
 
        i = 0;
        while (nbuckets[i] != 0 && adb->nentries >= nbuckets[i])
@@ -669,6 +671,7 @@ grow_entries(isc_task_t *task, isc_event_t *ev) {
  done:
        isc_task_endexclusive(task);
 
+ check_exit:
        LOCK(&adb->lock);
        if (dec_adb_irefcnt(adb))
                check_exit(adb);
@@ -693,7 +696,9 @@ grow_names(isc_task_t *task, isc_event_t *ev) {
 
        isc_event_free(&ev);
 
-       isc_task_beginexclusive(task);
+       result = isc_task_beginexclusive(task);
+       if (result != ISC_R_SUCCESS)
+               goto check_exit;
 
        i = 0;
        while (nbuckets[i] != 0 && adb->nnames >= nbuckets[i])
@@ -819,6 +824,7 @@ grow_names(isc_task_t *task, isc_event_t *ev) {
  done:
        isc_task_endexclusive(task);
 
+ check_exit:
        LOCK(&adb->lock);
        if (dec_adb_irefcnt(adb))
                check_exit(adb);