From 48d770d40f3be7e4119f83996404f43253027132 Mon Sep 17 00:00:00 2001 From: Erik Boasson Date: Sun, 5 Aug 2018 13:05:07 +0200 Subject: [PATCH] return false instead of crashing when invalid addresses are passed to ddsi_is_mcaddr/ddsi_is_ssm_mcaddr Signed-off-by: Erik Boasson --- src/core/ddsi/src/ddsi_tran.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/ddsi/src/ddsi_tran.c b/src/core/ddsi/src/ddsi_tran.c index 90b7942..1c66c99 100644 --- a/src/core/ddsi/src/ddsi_tran.c +++ b/src/core/ddsi/src/ddsi_tran.c @@ -247,13 +247,13 @@ int ddsi_is_mcaddr (const nn_locator_t *loc) { /* FIXME: should set m_is_mcaddr_fn to a function returning false if transport doesn't provide an implementation, and get rid of the test */ ddsi_tran_factory_t tran = ddsi_factory_find_supported_kind(loc->kind); - return tran->m_is_mcaddr_fn ? tran->m_is_mcaddr_fn (tran, loc) : 0; + return tran && tran->m_is_mcaddr_fn ? tran->m_is_mcaddr_fn (tran, loc) : 0; } int ddsi_is_ssm_mcaddr (const nn_locator_t *loc) { ddsi_tran_factory_t tran = ddsi_factory_find_supported_kind(loc->kind); - return tran->m_is_ssm_mcaddr_fn ? tran->m_is_ssm_mcaddr_fn (tran, loc) : 0; + return tran && tran->m_is_ssm_mcaddr_fn ? tran->m_is_ssm_mcaddr_fn (tran, loc) : 0; } enum ddsi_nearby_address_result ddsi_is_nearby_address (const nn_locator_t *loc, size_t ninterf, const struct nn_interface interf[])