uORB: fix node_open: *instance is read even though it's an output parameter

This fixes a subtle bug: the instance parameter of orb_advertise is an output
parameter and thus its value can be random. However in node_open this value
is accessed and thus the open(...) call could succeed even though it should
not. This can happen for example if a second advertiser of a topic calls
orb_advertise_multi with *instance=0.

The existing implementation worked only because *instance was initialized
with -1 in most cases.
This commit is contained in:
Beat Küng
2016-04-15 12:46:49 +02:00
committed by tumbili
parent 995710da00
commit 9c360e9f88
4 changed files with 33 additions and 41 deletions
+1 -1
View File
@@ -124,7 +124,7 @@ int uORBTest::UnitTest::pubsublatency_main(void)
delete[] timings;
warnx("mean: %8.4f", static_cast<double>(latency_integral / maxruns));
warnx("mean: %8.4f us", static_cast<double>(latency_integral / maxruns));
pubsubtest_passed = true;