Fixed coverity issues
Signed-off-by: Bart Poot <bart.poot@adlinktech.com> Processed review comments Signed-off-by: Bart Poot <bart.poot@adlinktech.com>
This commit is contained in:
parent
c84c69e551
commit
9a3a377327
42 changed files with 168 additions and 308 deletions
|
@ -113,7 +113,7 @@ dds_return_t dds_unregister_instance_ts (dds_entity_t writer, const void *data,
|
|||
return ret;
|
||||
|
||||
if (wr->m_entity.m_qos)
|
||||
dds_qget_writer_data_lifecycle (wr->m_entity.m_qos, &autodispose);
|
||||
(void) dds_qget_writer_data_lifecycle (wr->m_entity.m_qos, &autodispose);
|
||||
|
||||
thread_state_awake (ts1, &wr->m_entity.m_domain->gv);
|
||||
if (autodispose)
|
||||
|
@ -140,7 +140,7 @@ dds_return_t dds_unregister_instance_ih_ts (dds_entity_t writer, dds_instance_ha
|
|||
return ret;
|
||||
|
||||
if (wr->m_entity.m_qos)
|
||||
dds_qget_writer_data_lifecycle (wr->m_entity.m_qos, &autodispose);
|
||||
(void) dds_qget_writer_data_lifecycle (wr->m_entity.m_qos, &autodispose);
|
||||
|
||||
thread_state_awake (ts1, &wr->m_entity.m_domain->gv);
|
||||
if (autodispose)
|
||||
|
|
|
@ -150,6 +150,7 @@ void dds_reader_data_available_cb (struct dds_reader *rd)
|
|||
|
||||
rd->m_entity.m_cb_count--;
|
||||
rd->m_entity.m_cb_pending_count--;
|
||||
|
||||
ddsrt_cond_broadcast (&rd->m_entity.m_observers_cond);
|
||||
ddsrt_mutex_unlock (&rd->m_entity.m_observers_lock);
|
||||
}
|
||||
|
|
|
@ -1110,7 +1110,7 @@ static int rhc_unregister_isreg_w_sideeffects (struct dds_rhc_default *rhc, cons
|
|||
if (inst->wrcount == 2 && inst->wr_iid_islive && inst->wr_iid != wr_iid)
|
||||
{
|
||||
TRACE (",delreg(remain)");
|
||||
lwregs_delete (&rhc->registrations, inst->iid, inst->wr_iid);
|
||||
(void) lwregs_delete (&rhc->registrations, inst->iid, inst->wr_iid);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
@ -1627,7 +1627,7 @@ static void dds_rhc_default_unregister_wr (struct dds_rhc_default * __restrict r
|
|||
}
|
||||
}
|
||||
|
||||
dds_rhc_unregister (rhc, inst, wrinfo, inst->tstamp, &post, &trig_qc);
|
||||
(void) dds_rhc_unregister (rhc, inst, wrinfo, inst->tstamp, &post, &trig_qc);
|
||||
|
||||
TRACE ("\n");
|
||||
|
||||
|
|
|
@ -256,24 +256,25 @@ size_t dds_stream_check_optimize (const dds_topic_descriptor_t * __restrict desc
|
|||
return dds_stream_check_optimize1 (desc);
|
||||
}
|
||||
|
||||
static char *dds_stream_reuse_string (dds_istream_t * __restrict is, char * __restrict str, const uint32_t bound)
|
||||
static void dds_stream_reuse_string_bound (dds_istream_t * __restrict is, char * __restrict str, const uint32_t bound)
|
||||
{
|
||||
const uint32_t length = dds_is_get4 (is);
|
||||
const void *src = is->m_buffer + is->m_index;
|
||||
if (bound)
|
||||
{
|
||||
/* FIXME: validation now rejects data containing an oversize bounded string,
|
||||
so this check is superfluous, but perhaps rejecting such a sample is the
|
||||
wrong thing to do */
|
||||
assert (str != NULL);
|
||||
memcpy (str, src, length > bound ? bound : length);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (str == NULL || strlen (str) + 1 < length)
|
||||
str = dds_realloc (str, length);
|
||||
memcpy (str, src, length);
|
||||
}
|
||||
/* FIXME: validation now rejects data containing an oversize bounded string,
|
||||
so this check is superfluous, but perhaps rejecting such a sample is the
|
||||
wrong thing to do */
|
||||
assert (str != NULL);
|
||||
memcpy (str, src, length > bound ? bound : length);
|
||||
is->m_index += length;
|
||||
}
|
||||
|
||||
static char *dds_stream_reuse_string (dds_istream_t * __restrict is, char * __restrict str)
|
||||
{
|
||||
const uint32_t length = dds_is_get4 (is);
|
||||
const void *src = is->m_buffer + is->m_index;
|
||||
if (str == NULL || strlen (str) + 1 < length)
|
||||
str = dds_realloc (str, length);
|
||||
memcpy (str, src, length);
|
||||
is->m_index += length;
|
||||
return str;
|
||||
}
|
||||
|
@ -596,7 +597,7 @@ static const uint32_t *dds_stream_read_seq (dds_istream_t * __restrict is, char
|
|||
seq->_length = (num <= seq->_maximum) ? num : seq->_maximum;
|
||||
char **ptr = (char **) seq->_buffer;
|
||||
for (uint32_t i = 0; i < seq->_length; i++)
|
||||
ptr[i] = dds_stream_reuse_string (is, ptr[i], 0);
|
||||
ptr[i] = dds_stream_reuse_string (is, ptr[i]);
|
||||
for (uint32_t i = seq->_length; i < num; i++)
|
||||
dds_stream_skip_string (is);
|
||||
return ops + 2;
|
||||
|
@ -607,7 +608,7 @@ static const uint32_t *dds_stream_read_seq (dds_istream_t * __restrict is, char
|
|||
seq->_length = (num <= seq->_maximum) ? num : seq->_maximum;
|
||||
char *ptr = (char *) seq->_buffer;
|
||||
for (uint32_t i = 0; i < seq->_length; i++)
|
||||
(void) dds_stream_reuse_string (is, ptr + i * elem_size, elem_size);
|
||||
dds_stream_reuse_string_bound (is, ptr + i * elem_size, elem_size);
|
||||
for (uint32_t i = seq->_length; i < num; i++)
|
||||
dds_stream_skip_string (is);
|
||||
return ops + 3;
|
||||
|
@ -641,14 +642,14 @@ static const uint32_t *dds_stream_read_arr (dds_istream_t * __restrict is, char
|
|||
case DDS_OP_VAL_STR: {
|
||||
char **ptr = (char **) addr;
|
||||
for (uint32_t i = 0; i < num; i++)
|
||||
ptr[i] = dds_stream_reuse_string (is, ptr[i], 0);
|
||||
ptr[i] = dds_stream_reuse_string (is, ptr[i]);
|
||||
return ops + 3;
|
||||
}
|
||||
case DDS_OP_VAL_BST: {
|
||||
char *ptr = (char *) addr;
|
||||
const uint32_t elem_size = ops[4];
|
||||
for (uint32_t i = 0; i < num; i++)
|
||||
(void) dds_stream_reuse_string (is, ptr + i * elem_size, elem_size);
|
||||
dds_stream_reuse_string_bound (is, ptr + i * elem_size, elem_size);
|
||||
return ops + 5;
|
||||
}
|
||||
case DDS_OP_VAL_SEQ: case DDS_OP_VAL_ARR: case DDS_OP_VAL_UNI: case DDS_OP_VAL_STU: {
|
||||
|
@ -685,7 +686,7 @@ static const uint32_t *dds_stream_read_uni (dds_istream_t * __restrict is, char
|
|||
case DDS_OP_VAL_2BY: *((uint16_t *) valaddr) = dds_is_get2 (is); break;
|
||||
case DDS_OP_VAL_4BY: *((uint32_t *) valaddr) = dds_is_get4 (is); break;
|
||||
case DDS_OP_VAL_8BY: *((uint64_t *) valaddr) = dds_is_get8 (is); break;
|
||||
case DDS_OP_VAL_STR: *(char **) valaddr = dds_stream_reuse_string (is, *((char **) valaddr), 0); break;
|
||||
case DDS_OP_VAL_STR: *(char **) valaddr = dds_stream_reuse_string (is, *((char **) valaddr)); break;
|
||||
case DDS_OP_VAL_BST: case DDS_OP_VAL_SEQ: case DDS_OP_VAL_ARR: case DDS_OP_VAL_UNI: case DDS_OP_VAL_STU:
|
||||
dds_stream_read (is, valaddr, jeq_op + DDS_OP_ADR_JSR (jeq_op[0]));
|
||||
break;
|
||||
|
@ -709,8 +710,8 @@ static void dds_stream_read (dds_istream_t * __restrict is, char * __restrict da
|
|||
case DDS_OP_VAL_2BY: *((uint16_t *) addr) = dds_is_get2 (is); ops += 2; break;
|
||||
case DDS_OP_VAL_4BY: *((uint32_t *) addr) = dds_is_get4 (is); ops += 2; break;
|
||||
case DDS_OP_VAL_8BY: *((uint64_t *) addr) = dds_is_get8 (is); ops += 2; break;
|
||||
case DDS_OP_VAL_STR: *((char **) addr) = dds_stream_reuse_string (is, *((char **) addr), 0); ops += 2; break;
|
||||
case DDS_OP_VAL_BST: dds_stream_reuse_string (is, (char *) addr, ops[2]); ops += 3; break;
|
||||
case DDS_OP_VAL_STR: *((char **) addr) = dds_stream_reuse_string (is, *((char **) addr)); ops += 2; break;
|
||||
case DDS_OP_VAL_BST: dds_stream_reuse_string_bound (is, (char *) addr, ops[2]); ops += 3; break;
|
||||
case DDS_OP_VAL_SEQ: ops = dds_stream_read_seq (is, addr, ops, insn); break;
|
||||
case DDS_OP_VAL_ARR: ops = dds_stream_read_arr (is, addr, ops, insn); break;
|
||||
case DDS_OP_VAL_UNI: ops = dds_stream_read_uni (is, addr, data, ops, insn); break;
|
||||
|
@ -1126,8 +1127,8 @@ void dds_stream_read_key (dds_istream_t * __restrict is, char * __restrict sampl
|
|||
case DDS_OP_VAL_2BY: *((uint16_t *) dst) = dds_is_get2 (is); break;
|
||||
case DDS_OP_VAL_4BY: *((uint32_t *) dst) = dds_is_get4 (is); break;
|
||||
case DDS_OP_VAL_8BY: *((uint64_t *) dst) = dds_is_get8 (is); break;
|
||||
case DDS_OP_VAL_STR: *((char **) dst) = dds_stream_reuse_string (is, *((char **) dst), 0); break;
|
||||
case DDS_OP_VAL_BST: dds_stream_reuse_string (is, dst, op[2]); break;
|
||||
case DDS_OP_VAL_STR: *((char **) dst) = dds_stream_reuse_string (is, *((char **) dst)); break;
|
||||
case DDS_OP_VAL_BST: dds_stream_reuse_string_bound (is, dst, op[2]); break;
|
||||
case DDS_OP_VAL_ARR:
|
||||
dds_is_get_bytes (is, dst, op[2], get_type_size (DDS_OP_SUBTYPE (*op)));
|
||||
break;
|
||||
|
@ -1728,16 +1729,16 @@ static const uint32_t *prtf_seq (char * __restrict *buf, size_t *bufsize, dds_is
|
|||
num = dds_is_get4 (is);
|
||||
if (num == 0)
|
||||
{
|
||||
prtf (buf, bufsize, "{}");
|
||||
(void) prtf (buf, bufsize, "{}");
|
||||
return skip_sequence_insns (ops, insn);
|
||||
}
|
||||
switch (subtype)
|
||||
{
|
||||
case DDS_OP_VAL_1BY: case DDS_OP_VAL_2BY: case DDS_OP_VAL_4BY: case DDS_OP_VAL_8BY:
|
||||
prtf_simple_array (buf, bufsize, is, num, subtype);
|
||||
(void) prtf_simple_array (buf, bufsize, is, num, subtype);
|
||||
return ops + 2;
|
||||
case DDS_OP_VAL_STR: case DDS_OP_VAL_BST:
|
||||
prtf_simple_array (buf, bufsize, is, num, subtype);
|
||||
(void) prtf_simple_array (buf, bufsize, is, num, subtype);
|
||||
return ops + (subtype == DDS_OP_VAL_STR ? 2 : 3);
|
||||
case DDS_OP_VAL_SEQ: case DDS_OP_VAL_ARR: case DDS_OP_VAL_UNI: case DDS_OP_VAL_STU: {
|
||||
const uint32_t jmp = DDS_OP_ADR_JMP (ops[3]);
|
||||
|
@ -1745,10 +1746,10 @@ static const uint32_t *prtf_seq (char * __restrict *buf, size_t *bufsize, dds_is
|
|||
bool cont = prtf (buf, bufsize, "{");
|
||||
for (uint32_t i = 0; cont && i < num; i++)
|
||||
{
|
||||
if (i > 0) prtf (buf, bufsize, ",");
|
||||
if (i > 0) (void) prtf (buf, bufsize, ",");
|
||||
cont = dds_stream_print_sample1 (buf, bufsize, is, jsr_ops, subtype == DDS_OP_VAL_STU);
|
||||
}
|
||||
prtf (buf, bufsize, "}");
|
||||
(void) prtf (buf, bufsize, "}");
|
||||
return ops + (jmp ? jmp : 4); /* FIXME: why would jmp be 0? */
|
||||
}
|
||||
}
|
||||
|
@ -1762,10 +1763,10 @@ static const uint32_t *prtf_arr (char * __restrict *buf, size_t *bufsize, dds_is
|
|||
switch (subtype)
|
||||
{
|
||||
case DDS_OP_VAL_1BY: case DDS_OP_VAL_2BY: case DDS_OP_VAL_4BY: case DDS_OP_VAL_8BY:
|
||||
prtf_simple_array (buf, bufsize, is, num, subtype);
|
||||
(void) prtf_simple_array (buf, bufsize, is, num, subtype);
|
||||
return ops + 3;
|
||||
case DDS_OP_VAL_STR: case DDS_OP_VAL_BST:
|
||||
prtf_simple_array (buf, bufsize, is, num, subtype);
|
||||
(void) prtf_simple_array (buf, bufsize, is, num, subtype);
|
||||
return ops + (subtype == DDS_OP_VAL_STR ? 3 : 5);
|
||||
case DDS_OP_VAL_SEQ: case DDS_OP_VAL_ARR: case DDS_OP_VAL_UNI: case DDS_OP_VAL_STU: {
|
||||
const uint32_t *jsr_ops = ops + DDS_OP_ADR_JSR (ops[3]);
|
||||
|
@ -1773,10 +1774,10 @@ static const uint32_t *prtf_arr (char * __restrict *buf, size_t *bufsize, dds_is
|
|||
bool cont = prtf (buf, bufsize, "{");
|
||||
for (uint32_t i = 0; cont && i < num; i++)
|
||||
{
|
||||
if (i > 0) prtf (buf, bufsize, ",");
|
||||
if (i > 0) (void) prtf (buf, bufsize, ",");
|
||||
cont = dds_stream_print_sample1 (buf, bufsize, is, jsr_ops, subtype == DDS_OP_VAL_STU);
|
||||
}
|
||||
prtf (buf, bufsize, "}");
|
||||
(void) prtf (buf, bufsize, "}");
|
||||
return ops + (jmp ? jmp : 5);
|
||||
}
|
||||
}
|
||||
|
@ -1787,7 +1788,7 @@ static const uint32_t *prtf_uni (char * __restrict *buf, size_t *bufsize, dds_is
|
|||
{
|
||||
const uint32_t disc = read_union_discriminant (is, DDS_OP_SUBTYPE (insn));
|
||||
uint32_t const * const jeq_op = find_union_case (ops, disc);
|
||||
prtf (buf, bufsize, "%"PRIu32":", disc);
|
||||
(void) prtf (buf, bufsize, "%"PRIu32":", disc);
|
||||
ops += DDS_OP_ADR_JMP (ops[3]);
|
||||
if (jeq_op)
|
||||
{
|
||||
|
@ -1796,10 +1797,10 @@ static const uint32_t *prtf_uni (char * __restrict *buf, size_t *bufsize, dds_is
|
|||
{
|
||||
case DDS_OP_VAL_1BY: case DDS_OP_VAL_2BY: case DDS_OP_VAL_4BY: case DDS_OP_VAL_8BY:
|
||||
case DDS_OP_VAL_STR: case DDS_OP_VAL_BST:
|
||||
prtf_simple (buf, bufsize, is, valtype);
|
||||
(void) prtf_simple (buf, bufsize, is, valtype);
|
||||
break;
|
||||
case DDS_OP_VAL_SEQ: case DDS_OP_VAL_ARR: case DDS_OP_VAL_UNI: case DDS_OP_VAL_STU:
|
||||
dds_stream_print_sample1 (buf, bufsize, is, jeq_op + DDS_OP_ADR_JSR (jeq_op[0]), valtype == DDS_OP_VAL_STU);
|
||||
(void) dds_stream_print_sample1 (buf, bufsize, is, jeq_op + DDS_OP_ADR_JSR (jeq_op[0]), valtype == DDS_OP_VAL_STU);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1812,11 +1813,11 @@ static bool dds_stream_print_sample1 (char * __restrict *buf, size_t * __restric
|
|||
bool cont = true;
|
||||
bool needs_comma = false;
|
||||
if (add_braces)
|
||||
prtf (buf, bufsize, "{");
|
||||
(void) prtf (buf, bufsize, "{");
|
||||
while (cont && (insn = *ops) != DDS_OP_RTS)
|
||||
{
|
||||
if (needs_comma)
|
||||
prtf (buf, bufsize, ",");
|
||||
(void) prtf (buf, bufsize, ",");
|
||||
needs_comma = true;
|
||||
switch (DDS_OP (insn))
|
||||
{
|
||||
|
@ -1859,13 +1860,13 @@ static bool dds_stream_print_sample1 (char * __restrict *buf, size_t * __restric
|
|||
}
|
||||
}
|
||||
if (add_braces)
|
||||
prtf (buf, bufsize, "}");
|
||||
(void) prtf (buf, bufsize, "}");
|
||||
return cont;
|
||||
}
|
||||
|
||||
size_t dds_stream_print_sample (dds_istream_t * __restrict is, const struct ddsi_sertopic_default * __restrict topic, char * __restrict buf, size_t bufsize)
|
||||
{
|
||||
dds_stream_print_sample1 (&buf, &bufsize, is, topic->type->m_ops, true);
|
||||
(void) dds_stream_print_sample1 (&buf, &bufsize, is, topic->type->m_ops, true);
|
||||
return bufsize;
|
||||
}
|
||||
|
||||
|
@ -1891,7 +1892,7 @@ size_t dds_stream_print_key (dds_istream_t * __restrict is, const struct ddsi_se
|
|||
break;
|
||||
}
|
||||
}
|
||||
prtf (&buf, &bufsize, "}");
|
||||
(void) prtf (&buf, &bufsize, "}");
|
||||
return bufsize;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue