Linux: GateMP: Fix Error Handling When defaultGate Not Found Due to Timeout
authorAngela Stegmaier <angelabaker@ti.com>
Wed, 7 Mar 2018 19:39:54 +0000 (13:39 -0600)
committerAngela Stegmaier <angelabaker@ti.com>
Tue, 20 Mar 2018 14:58:29 +0000 (09:58 -0500)
commit2c9e71a9383a3530516bc2d371511ea725ccefcd
treeb34a56c0cf7e670c990b250f3051dd70719bd728
parent6a2595a4148fb12f259efc19164a9d33ad2ed294
Linux: GateMP: Fix Error Handling When defaultGate Not Found Due to Timeout

In a corner case where remote NameServer requests take too long and
time out, it is possible that remoteSystemGate may be de-referenced
in GateMP_start when it wasn't allocated during GateMP_attach.

This patch improves error checking in GateMP_start to avoid the potential
NULL pointer de-reference. Before trying to access the remoteSystemGates
pointer during GateMP_start, we should first make sure that the pointer is
valid. Also check to make sure that the gate number does not exceed the
number of allocated gates.

If the corner case has been hit where the GateMP_attach failed but GateMP_open
later passes during GateMP_start, GateMP_start will now return an error,
resulting in Ipc_start returning an error. The application can then call
Ipc_start again.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
linux/src/api/gates/GateMP.c