]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Turn assert into talloc check.
authorAlan T. DeKok <aland@freeradius.org>
Wed, 18 Sep 2013 14:12:24 +0000 (10:12 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 18 Sep 2013 14:12:24 +0000 (10:12 -0400)
Which should get more information on error

src/include/radiusd.h
src/main/threads.c

index 307d61999e9bad52bd21fa1d6f9ec316f4d80613..693db43bdcdf3a276d2fd6aee993020036264e10 100644 (file)
@@ -187,6 +187,12 @@ typedef            int (*RAD_REQUEST_FUNP)(REQUEST *);
 #define REQUEST_DATA_REGEX (0xadbeef00)
 #define REQUEST_MAX_REGEX (8)
 
+#if defined(WITH_VERIFY_PTR)
+#define VERIFY_REQUEST(_x) (void) talloc_get_type_abort(_x, REQUEST)
+#else
+#define VERIFY_REQUEST(_x)
+#endif
+
 struct request {
 #ifndef NDEBUG
        uint32_t                magic;          //!< Magic number used to
index c8304aabe75bc08352f5823e80bbcb6a39de728b..1f3ab7a4ebe8c84efa5a733b280ff2ea8da6354c 100644 (file)
@@ -512,7 +512,7 @@ static int request_dequeue(REQUEST **prequest)
                request = fr_fifo_peek(thread_pool.fifo[i]);
                if (!request) continue;
 
-               rad_assert(request->magic == REQUEST_MAGIC);
+               VERIFY_REQUEST(request);
 
                if (request->master_state != REQUEST_STOP_PROCESSING) {
                        continue;
@@ -523,6 +523,7 @@ static int request_dequeue(REQUEST **prequest)
                 */
                request = fr_fifo_pop(thread_pool.fifo[i]);
                rad_assert(request != NULL);
+               VERIFY_REQUEST(request);
                request->child_state = REQUEST_DONE;
                thread_pool.num_queued--;
        }
@@ -535,6 +536,7 @@ static int request_dequeue(REQUEST **prequest)
        for (i = start; i < RAD_LISTEN_MAX; i++) {
                request = fr_fifo_pop(thread_pool.fifo[i]);
                if (request) {
+                       VERIFY_REQUEST(request);
                        start = i;
                        break;
                }