diff --git a/src/core/ddsc/src/dds_qos.c b/src/core/ddsc/src/dds_qos.c index 1cebe53..d13eeeb 100644 --- a/src/core/ddsc/src/dds_qos.c +++ b/src/core/ddsc/src/dds_qos.c @@ -403,6 +403,7 @@ void dds_qset_prop (dds_qos_t * __restrict qos, const char * name, const char * dds_qprop_init (qos); if (dds_qprop_get_index (qos, name, &i)) { + assert (&qos->property.value.props[i] != NULL); /* for Clang static analyzer */ dds_free (qos->property.value.props[i].value); qos->property.value.props[i].value = dds_string_dup (value); } @@ -426,6 +427,7 @@ void dds_qset_bprop (dds_qos_t * __restrict qos, const char * name, const void * dds_qprop_init (qos); if (dds_qbprop_get_index (qos, name, &i)) { + assert (&qos->property.binary_value.props[i].value != NULL); /* for Clang static analyzer */ dds_qos_data_copy_in (&qos->property.binary_value.props[i].value, value, sz, true); } else diff --git a/src/core/ddsc/tests/qos.c b/src/core/ddsc/tests/qos.c index 3e6e644..24be7d3 100644 --- a/src/core/ddsc/tests/qos.c +++ b/src/core/ddsc/tests/qos.c @@ -11,6 +11,7 @@ */ #include "CUnit/Test.h" #include "dds/dds.h" +#include /**************************************************************************** * Convenience global policies @@ -746,6 +747,7 @@ CU_Test(ddsc_qos, bproperty, .init=qos_init, .fini=qos_fini) CU_ASSERT_FATAL(dds_qget_bprop (g_qos, c_bproperty_names[0], &bvalue, &size)); CU_ASSERT_FATAL (bvalue != NULL); CU_ASSERT_EQUAL_FATAL (size, 3); + assert (c_bproperty_values[0] != NULL); /* for Clang static analyzer */ CU_ASSERT_EQUAL_FATAL (memcmp (bvalue, c_bproperty_values[0], size), 0); dds_free (bvalue); @@ -754,6 +756,7 @@ CU_Test(ddsc_qos, bproperty, .init=qos_init, .fini=qos_fini) CU_ASSERT_FATAL (dds_qget_bprop (g_qos, c_bproperty_names[0], &bvalue, &size)); CU_ASSERT_FATAL (bvalue != NULL); CU_ASSERT_EQUAL_FATAL (size, 3); + assert (c_bproperty_values[1] != NULL); /* for Clang static analyzer */ CU_ASSERT_EQUAL_FATAL (memcmp (bvalue, c_bproperty_values[1], size), 0); dds_free (bvalue); dds_qset_bprop (g_qos, c_bproperty_names[0], &c_bproperty_values[0], 3); @@ -782,11 +785,13 @@ CU_Test(ddsc_qos, bproperty, .init=qos_init, .fini=qos_fini) CU_ASSERT_FATAL (dds_qget_bprop (g_qos, c_bproperty_names[0], &bvalue, &size)); CU_ASSERT_FATAL (bvalue != NULL); CU_ASSERT_EQUAL_FATAL (size, 3); + assert (c_bproperty_values[0] != NULL); /* for Clang static analyzer */ CU_ASSERT_EQUAL_FATAL (memcmp (bvalue, c_bproperty_values[0], size), 0); dds_free (bvalue); CU_ASSERT_FATAL (dds_qget_bprop (g_qos, c_bproperty_names[2], &bvalue, &size)); CU_ASSERT_FATAL (bvalue != NULL); CU_ASSERT_EQUAL_FATAL (size, 3); + assert (c_bproperty_values[2] != NULL); /* for Clang static analyzer */ CU_ASSERT_EQUAL_FATAL (memcmp (bvalue, c_bproperty_values[2], size), 0); dds_free (bvalue); dds_qunset_bprop (g_qos, c_bproperty_names[0]); @@ -809,6 +814,7 @@ CU_Test(ddsc_qos, property_mixed, .init=qos_init, .fini=qos_fini) CU_ASSERT_FATAL (dds_qget_bprop (g_qos, c_property_names[0], &bvalue, &size)); CU_ASSERT_FATAL (bvalue != NULL); CU_ASSERT_EQUAL_FATAL (size, 3); + assert (c_bproperty_values[0] != NULL); /* for Clang static analyzer */ CU_ASSERT_EQUAL_FATAL (memcmp (bvalue, c_bproperty_values[0], size), 0); dds_free (bvalue); CU_ASSERT_FATAL (dds_qget_prop (g_qos, c_property_names[0], &value)); diff --git a/src/core/ddsi/src/q_xevent.c b/src/core/ddsi/src/q_xevent.c index 4ff5608..3c852d5 100644 --- a/src/core/ddsi/src/q_xevent.c +++ b/src/core/ddsi/src/q_xevent.c @@ -584,7 +584,6 @@ static void send_heartbeat_to_all_readers(struct nn_xpack *xp, struct xevent *ev { struct whc_state whcst; nn_mtime_t t_next; - int hbansreq = 0; unsigned count = 0; ddsrt_mutex_lock (&wr->e.lock); @@ -592,21 +591,14 @@ static void send_heartbeat_to_all_readers(struct nn_xpack *xp, struct xevent *ev whc_get_state(wr->whc, &whcst); if (!writer_must_have_hb_scheduled (wr, &whcst)) - { - hbansreq = 1; /* just for trace */ t_next.v = T_NEVER; - } else if (!writer_hbcontrol_must_send (wr, &whcst, tnow)) - { - hbansreq = 1; /* just for trace */ t_next.v = tnow.v + writer_hbcontrol_intv (wr, &whcst, tnow); - } else { struct wr_prd_match *m; struct ddsi_guid last_guid = { .prefix = {.u = {0,0,0}}, .entityid = {0} }; - - hbansreq = writer_hbcontrol_ack_required (wr, &whcst, tnow); + const int hbansreq = writer_hbcontrol_ack_required (wr, &whcst, tnow); t_next.v = tnow.v + writer_hbcontrol_intv (wr, &whcst, tnow); while ((m = ddsrt_avl_lookup_succ (&wr_readers_treedef, &wr->readers, &last_guid)) != NULL) diff --git a/src/core/ddsi/tests/security_msg.c b/src/core/ddsi/tests/security_msg.c index 87bd734..c052a89 100644 --- a/src/core/ddsi/tests/security_msg.c +++ b/src/core/ddsi/tests/security_msg.c @@ -15,6 +15,7 @@ #include "dds/ddsrt/string.h" #include "dds/ddsi/ddsi_security_msg.h" #include "mem_ser.h" +#include static nn_participant_generic_message_t test_msg_in = { @@ -302,6 +303,7 @@ CU_Test (ddsi_security_msg, serializer) /* Check serialization result. */ size_t cmpsize = (len < sizeof(test_msg_ser)) ? len : sizeof(test_msg_ser); + assert(data != NULL); /* for Clang static analyzer */ if (memcmp (data, test_msg_ser, cmpsize) != 0) { printf ("memcmp(%d)\n", (int)cmpsize); diff --git a/src/ddsrt/tests/dynlib.c b/src/ddsrt/tests/dynlib.c index 76d5871..9b8d5df 100644 --- a/src/ddsrt/tests/dynlib.c +++ b/src/ddsrt/tests/dynlib.c @@ -87,7 +87,7 @@ CU_Test(ddsrt_library, dlopen_unknown) ddsrt_dynlib_t l; r = ddsrt_dlopen("UnknownLib", false, &l); - + CU_ASSERT_NOT_EQUAL(r, DDS_RETCODE_OK); CU_ASSERT_PTR_NULL_FATAL(l); r = ddsrt_dlerror(buffer, sizeof(buffer)); @@ -123,6 +123,7 @@ CU_Test(ddsrt_library, dlsym_unknown) void* f; r = ddsrt_dlopen(TEST_LIB_NAME, true, &l); + CU_ASSERT_EQUAL(r, DDS_RETCODE_OK); CU_ASSERT_PTR_NOT_NULL(l); TEST_ABORT_IF_NULL(l,"ddsrt_dlopen() failed. Is the proper library path set?"); @@ -150,17 +151,21 @@ CU_Test(ddsrt_library, call) ddsrt_dynlib_t l; r = ddsrt_dlopen(TEST_LIB_NAME, true, &l); + CU_ASSERT_EQUAL(r, DDS_RETCODE_OK); CU_ASSERT_PTR_NOT_NULL(l); TEST_ABORT_IF_NULL(l, "ddsrt_dlopen() failed. Is the proper library path set?"); r = ddsrt_dlsym(l, "get_int", (void **)&f_get); + CU_ASSERT_EQUAL(r, DDS_RETCODE_OK); CU_ASSERT_PTR_NOT_NULL(f_get); TEST_ABORT_IF_NULL(f_get, "ddsrt_dlsym(l, \"get_int\") failed."); r = ddsrt_dlsym(l, "set_int", (void **)&f_set); + CU_ASSERT_EQUAL(r, DDS_RETCODE_OK); CU_ASSERT_PTR_NOT_NULL(f_set); TEST_ABORT_IF_NULL(f_set, "ddsrt_dlsym(l, \"set_int\") failed."); + assert(f_set != 0 && f_get != 0); /* for Clang static analyzer */ f_set(set_int); get_int = f_get(); CU_ASSERT_EQUAL(set_int, get_int); @@ -175,6 +180,7 @@ CU_Test(ddsrt_library, dlclose_error) ddsrt_dynlib_t l; r = ddsrt_dlopen(TEST_LIB_NAME, true, &l); + CU_ASSERT_EQUAL(r, DDS_RETCODE_OK); CU_ASSERT_PTR_NOT_NULL(l); TEST_ABORT_IF_NULL(l, "ddsrt_dlopen() failed. Is the proper library path set?"); diff --git a/src/ddsrt/tests/string.c b/src/ddsrt/tests/string.c index babe9af..2d809ea 100644 --- a/src/ddsrt/tests/string.c +++ b/src/ddsrt/tests/string.c @@ -10,6 +10,7 @@ * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause */ #include +#include #include "CUnit/Theory.h" #include "dds/ddsrt/heap.h" @@ -82,6 +83,7 @@ CU_Theory((const char *str, const char *srch, const char *subst, size_t max, con if (exp != NULL) { CU_ASSERT_FATAL(r != NULL); + assert(r != NULL); /* for Clang static analyzer */ CU_ASSERT(strcmp(r, exp) == 0); ddsrt_free(r); }