]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
3223. [bug] 'task_test privilege_drop' generated false positives.
authorMark Andrews <marka@isc.org>
Tue, 29 Nov 2011 00:41:28 +0000 (00:41 +0000)
committerMark Andrews <marka@isc.org>
Tue, 29 Nov 2011 00:41:28 +0000 (00:41 +0000)
                        [RT #26766]

CHANGES
lib/isc/tests/task_test.c

diff --git a/CHANGES b/CHANGES
index d6ca74d2b4ea401f684815ce562e1d166f87fe39..6cf6dafbb6d830b38e436034a13d21ebdc247019 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+3223.  [bug]           'task_test privilege_drop' generated false positives.
+                       [RT #26766]
+
 3222.  [cleanup]       Replace dns_journal_{get,set}_bitws with
                        dns_journal_{get,set}_sourceserial. [RT #26634]
 
index 326799212b3b4acc51682afee907ca0a60061d34..ca8475d3368dc8c192d967e08e2ed3e3245b0b04 100644 (file)
@@ -14,7 +14,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: task_test.c,v 1.4 2011/10/18 02:00:56 marka Exp $ */
+/* $Id: task_test.c,v 1.5 2011/11/29 00:41:28 marka Exp $ */
 
 /*! \file */
 
@@ -286,7 +286,7 @@ ATF_TC_BODY(privilege_drop, tc) {
        isc_result_t result;
        isc_task_t *task1 = NULL, *task2 = NULL;
        isc_event_t *event;
-       int a = 0, b = 0, c = 0, d = 0, e = 0;
+       int a = -1, b = -1, c = -1, d = -1, e = -1;     /* non valid states */
        int i = 0;
 
        UNUSED(tc);
@@ -323,7 +323,7 @@ ATF_TC_BODY(privilege_drop, tc) {
                                   set_and_drop, &a, sizeof (isc_event_t));
        ATF_REQUIRE(event != NULL);
 
-       ATF_CHECK_EQ(a, 0);
+       ATF_CHECK_EQ(a, -1);
        isc_task_send(task1, &event);
 
        /* Second event: not privileged */
@@ -331,7 +331,7 @@ ATF_TC_BODY(privilege_drop, tc) {
                                   set_and_drop, &b, sizeof (isc_event_t));
        ATF_REQUIRE(event != NULL);
 
-       ATF_CHECK_EQ(b, 0);
+       ATF_CHECK_EQ(b, -1);
        isc_task_send(task2, &event);
 
        /* Third event: privileged */
@@ -339,7 +339,7 @@ ATF_TC_BODY(privilege_drop, tc) {
                                   set_and_drop, &c, sizeof (isc_event_t));
        ATF_REQUIRE(event != NULL);
 
-       ATF_CHECK_EQ(c, 0);
+       ATF_CHECK_EQ(c, -1);
        isc_task_send(task1, &event);
 
        /* Fourth event: privileged */
@@ -347,7 +347,7 @@ ATF_TC_BODY(privilege_drop, tc) {
                                   set_and_drop, &d, sizeof (isc_event_t));
        ATF_REQUIRE(event != NULL);
 
-       ATF_CHECK_EQ(d, 0);
+       ATF_CHECK_EQ(d, -1);
        isc_task_send(task1, &event);
 
        /* Fifth event: not privileged */
@@ -355,7 +355,7 @@ ATF_TC_BODY(privilege_drop, tc) {
                                   set_and_drop, &e, sizeof (isc_event_t));
        ATF_REQUIRE(event != NULL);
 
-       ATF_CHECK_EQ(e, 0);
+       ATF_CHECK_EQ(e, -1);
        isc_task_send(task2, &event);
 
        ATF_CHECK_EQ(isc_taskmgr_mode(taskmgr), isc_taskmgrmode_normal);
@@ -366,8 +366,9 @@ ATF_TC_BODY(privilege_drop, tc) {
        isc__taskmgr_resume(taskmgr);
 #endif
 
-       /* We're waiting for *any* variable to be set */
-       while ((a == 0 && b == 0 && c == 0 && d == 0 && e == 0) && i++ < 5000) {
+       /* We're waiting for all variables to be set. */
+       while ((a == -1 || b == -1 || c == -1 || d == -1 || e == -1) &&
+              i++ < 5000) {
 #ifndef ISC_PLATFORM_USETHREADS
                while (isc__taskmgr_ready(taskmgr))
                        isc__taskmgr_dispatch(taskmgr);
@@ -400,6 +401,7 @@ ATF_TC_BODY(privilege_drop, tc) {
 
        isc_test_end();
 }
+
 /*
  * Main
  */