From f2af8b08edb1b389f0f6fcc0b3a329ec72a88db2 Mon Sep 17 00:00:00 2001 From: Mark Charlebois Date: Tue, 5 May 2015 12:09:19 -0700 Subject: [PATCH] uORB: fix segfault in unit test The unit test was not passing a null pointer terminated argv. The posix port depends on argv being null terminated to determine how may args were passed since PX4 API doesn't pass argc when spawning a new task. Signed-off-by: Mark Charlebois --- src/modules/uORB/uORBTest_UnitTest.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/modules/uORB/uORBTest_UnitTest.hpp b/src/modules/uORB/uORBTest_UnitTest.hpp index bbfa895fa6..0e68aa6c8c 100644 --- a/src/modules/uORB/uORBTest_UnitTest.hpp +++ b/src/modules/uORB/uORBTest_UnitTest.hpp @@ -35,6 +35,7 @@ #define _uORBTest_UnitTest_hpp_ #include "uORBCommon.hpp" #include "uORB.h" +#include struct orb_test { int val; @@ -92,6 +93,8 @@ int uORBTest::UnitTest::latency_test(orb_id_t T, bool print) int pfd0 = orb_advertise(T, &t); + char * const args[2] = { (char* const) this, 0 }; + pubsubtest_print = print; pubsubtest_passed = false; @@ -103,7 +106,7 @@ int uORBTest::UnitTest::latency_test(orb_id_t T, bool print) SCHED_PRIORITY_MAX - 5, 1500, (px4_main_t)&uORBTest::UnitTest::pubsubtest_threadEntry, - (char* const*) this); + args); /* give the test task some data */ while (!pubsubtest_passed) {