fix valgrind false positive upon olsr shutdown:
authorHannes Gredler <hannes@gredler.at>
Wed, 10 Dec 2008 10:39:08 +0000 (11:39 +0100)
committerHannes Gredler <hannes@gredler.at>
Wed, 10 Dec 2008 10:39:08 +0000 (11:39 +0100)
make all the memory free_list entries accessible such that valgrind
does not log a false positive when doing list dequeing operations
and touching neighboring list entries.

src/olsr_cookie.c
valgrind-howto.txt

index 1bc20b1..5a6042b 100644 (file)
@@ -109,6 +109,19 @@ olsr_free_cookie(struct olsr_cookie_info *ci)
 
   /* Flush all the memory on the free list */
   if (ci->ci_type == OLSR_COOKIE_TYPE_MEMORY) {
+
+    /*
+     * First make all items accessible,
+     * such that valgrind does not complain at shutdown.
+     */
+    if (!list_is_empty(&ci->ci_free_list)) {
+      for (memory_list = ci->ci_free_list.next;
+           memory_list != &ci->ci_free_list;
+           memory_list = memory_list->next) {
+        VALGRIND_MAKE_MEM_DEFINED(memory_list, ci->ci_size);
+      }
+    }
+
     while (!list_is_empty(&ci->ci_free_list)) {
       memory_list = ci->ci_free_list.next;
       list_remove(memory_list);
index a4f44e5..b024056 100644 (file)
@@ -31,4 +31,4 @@ valgrind for profiling:
 
 valgrind for memory checking:
 
-  valgrind --tool=memcheck --leak-check=full --show-reachable=yes ./olsrd -d 0 -nofork
+  valgrind --tool=memcheck --leak-check=full --show-reachable=yes ./olsrd --nofork -f /etc/olsrd.conf -d 0