]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
daemon/worker: add assertion
authorVladimír Čunát <vladimir.cunat@nic.cz>
Fri, 15 Nov 2019 12:25:27 +0000 (13:25 +0100)
committerVladimír Čunát <vladimir.cunat@nic.cz>
Tue, 19 Nov 2019 12:29:34 +0000 (12:29 +0000)
It might detect some use-after-free cases even without ASAN.

daemon/worker.c

index 4bf105b55dda52b4037d3f7a4e43d459de7aeba1..df0f704e6470bac396bdaef079a723009a6044cf 100644 (file)
@@ -101,7 +101,12 @@ struct qr_task
 #define qr_task_ref(task) \
        do { ++(task)->refs; } while(0)
 #define qr_task_unref(task) \
-       do { if ((task) && --(task)->refs == 0) { qr_task_free((task)); } } while (0)
+       do { \
+               if (task) \
+                       assert((task)->refs > 0); \
+               if ((task) && --(task)->refs == 0) \
+                       qr_task_free((task)); \
+       } while (0)
 
 /** @internal get key for tcp session
  *  @note kr_straddr() return pointer to static string