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
|
@ -27,9 +27,9 @@
|
|||
static char *qp_duration_str (char *buf, size_t bufsz, dds_duration_t d)
|
||||
{
|
||||
if (d == DDS_INFINITY)
|
||||
snprintf (buf, bufsz, "infinite");
|
||||
(void) snprintf (buf, bufsz, "infinite");
|
||||
else
|
||||
snprintf (buf, bufsz, "%u.%09u", (unsigned)(d / DDS_NSECS_IN_SEC), (unsigned)(d % DDS_NSECS_IN_SEC));
|
||||
(void) snprintf (buf, bufsz, "%u.%09u", (unsigned)(d / DDS_NSECS_IN_SEC), (unsigned)(d % DDS_NSECS_IN_SEC));
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
@ -443,9 +443,9 @@ static void print_dcps_participant (FILE *fp, dds_entity_t pp)
|
|||
qp_qos (data->qos, fp);
|
||||
}
|
||||
}
|
||||
dds_return_loan (rd, ptrs, n);
|
||||
(void) dds_return_loan (rd, ptrs, n);
|
||||
}
|
||||
dds_delete (rd);
|
||||
(void) dds_delete (rd);
|
||||
}
|
||||
|
||||
static void print_dcps_endpoint (FILE *fp, dds_entity_t pp, const char *type, dds_entity_t topic)
|
||||
|
@ -472,9 +472,9 @@ static void print_dcps_endpoint (FILE *fp, dds_entity_t pp, const char *type, dd
|
|||
qp_qos (data->qos,fp);
|
||||
}
|
||||
}
|
||||
dds_return_loan (rd, ptrs, n);
|
||||
(void) dds_return_loan (rd, ptrs, n);
|
||||
}
|
||||
dds_delete (rd);
|
||||
(void) dds_delete (rd);
|
||||
}
|
||||
|
||||
static void print_dcps_subscription (FILE *fp, dds_entity_t pp)
|
||||
|
|
|
@ -180,7 +180,7 @@ bool record_cputime (struct record_cputime_state *state, const char *prefix, dds
|
|||
}
|
||||
state->tprev = tnow;
|
||||
state->s.some_above = some_above;
|
||||
dds_write (state->wr, &state->s);
|
||||
(void) dds_write (state->wr, &state->s);
|
||||
return print_cputime (&state->s, prefix, false, true);
|
||||
}
|
||||
|
||||
|
|
|
@ -1881,7 +1881,7 @@ int main (int argc, char *argv[])
|
|||
case 'd': {
|
||||
char *col;
|
||||
int pos;
|
||||
ddsrt_strlcpy (netload_if, optarg, sizeof (netload_if));
|
||||
(void) ddsrt_strlcpy (netload_if, optarg, sizeof (netload_if));
|
||||
if ((col = strrchr (netload_if, ':')) == NULL || col == netload_if ||
|
||||
(sscanf (col+1, "%lf%n", &netload_bw, &pos) != 1 || (col+1)[pos] != 0))
|
||||
error3 ("-d%s: expected DEVICE:BANDWIDTH\n", optarg);
|
||||
|
|
|
@ -266,162 +266,6 @@ Use \"\" for default partition.\n",
|
|||
exit (1);
|
||||
}
|
||||
|
||||
static void expand_append(char **dst, size_t *sz,size_t *pos, char c) {
|
||||
if (*pos == *sz) {
|
||||
*sz += 1024;
|
||||
*dst = dds_realloc(*dst, *sz);
|
||||
}
|
||||
(*dst)[*pos] = c;
|
||||
(*pos)++;
|
||||
}
|
||||
|
||||
static char *expand_envvars(const char *src0);
|
||||
|
||||
// FIXME: This is the same as the expand function in util. Merge.
|
||||
static char *expand_env(const char *name, char op, const char *alt) {
|
||||
char *env = NULL;
|
||||
ddsrt_getenv(name, &env);
|
||||
switch (op) {
|
||||
case 0:
|
||||
return dds_string_dup(env ? env : "");
|
||||
case '-':
|
||||
return env ? dds_string_dup(env) : expand_envvars(alt);
|
||||
case '?':
|
||||
if (env)
|
||||
return dds_string_dup(env);
|
||||
else {
|
||||
char *altx = expand_envvars(alt);
|
||||
error_exit("%s: %s\n", name, altx);
|
||||
//dds_free(altx);
|
||||
return NULL;
|
||||
}
|
||||
case '+':
|
||||
return env ? expand_envvars(alt) : dds_string_dup("");
|
||||
default:
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
|
||||
static char *expand_envbrace(const char **src) {
|
||||
const char *start = *src + 1;
|
||||
char *name, *x;
|
||||
assert(**src == '{');
|
||||
(*src)++;
|
||||
while (**src && **src != ':' && **src != '}')
|
||||
(*src)++;
|
||||
if (**src == 0)
|
||||
goto err;
|
||||
|
||||
name = dds_alloc((size_t) (*src - start) + 1);
|
||||
memcpy(name, start, (size_t) (*src - start));
|
||||
name[*src - start] = 0;
|
||||
if (**src == '}') {
|
||||
(*src)++;
|
||||
x = expand_env(name, 0, NULL);
|
||||
dds_free(name);
|
||||
return x;
|
||||
} else {
|
||||
const char *altstart;
|
||||
char *alt;
|
||||
char op;
|
||||
assert(**src == ':');
|
||||
(*src)++;
|
||||
|
||||
switch (**src) {
|
||||
case '-': case '+': case '?':
|
||||
op = **src;
|
||||
(*src)++;
|
||||
break;
|
||||
default:
|
||||
goto err;
|
||||
}
|
||||
|
||||
altstart = *src;
|
||||
while (**src && **src != '}') {
|
||||
if (**src == '\\') {
|
||||
(*src)++;
|
||||
if (**src == 0)
|
||||
goto err;
|
||||
}
|
||||
(*src)++;
|
||||
}
|
||||
if (**src == 0)
|
||||
goto err;
|
||||
assert(**src == '}');
|
||||
alt = dds_alloc((size_t) (*src - altstart) + 1);
|
||||
memcpy(alt, altstart, (size_t) (*src - altstart));
|
||||
alt[*src - altstart] = 0;
|
||||
(*src)++;
|
||||
x = expand_env(name, op, alt);
|
||||
dds_free(alt);
|
||||
dds_free(name);
|
||||
return x;
|
||||
}
|
||||
|
||||
err:
|
||||
error_exit("%*.*s: invalid expansion\n", (int) (*src - start), (int) (*src - start), start);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static char *expand_envsimple(const char **src) {
|
||||
const char *start = *src;
|
||||
char *name, *x;
|
||||
while (**src && (isalnum((unsigned char)**src) || **src == '_'))
|
||||
(*src)++;
|
||||
assert(*src > start);
|
||||
name = dds_alloc((size_t) (*src - start) + 1);
|
||||
memcpy(name, start, (size_t) (*src - start));
|
||||
name[*src - start] = 0;
|
||||
x = expand_env(name, 0, NULL);
|
||||
dds_free(name);
|
||||
return x;
|
||||
}
|
||||
|
||||
static char *expand_envchar(const char **src) {
|
||||
char name[2];
|
||||
assert(**src);
|
||||
name[0] = **src;
|
||||
name[1] = 0;
|
||||
(*src)++;
|
||||
return expand_env(name, 0, NULL);
|
||||
}
|
||||
|
||||
static char *expand_envvars(const char *src0) {
|
||||
/* Expands $X, ${X}, ${X:-Y}, ${X:+Y}, ${X:?Y} forms */
|
||||
const char *src = src0;
|
||||
size_t sz = strlen(src) + 1, pos = 0;
|
||||
char *dst = dds_alloc(sz);
|
||||
while (*src) {
|
||||
if (*src == '\\') {
|
||||
src++;
|
||||
if (*src == 0)
|
||||
error_exit("%s: incomplete escape at end of string\n", src0);
|
||||
expand_append(&dst, &sz, &pos, *src++);
|
||||
} else if (*src == '$') {
|
||||
char *x, *xp;
|
||||
src++;
|
||||
if (*src == 0) {
|
||||
error_exit("%s: incomplete variable expansion at end of string\n", src0);
|
||||
return NULL;
|
||||
} else if (*src == '{') {
|
||||
x = expand_envbrace(&src);
|
||||
} else if (isalnum((unsigned char)*src) || *src == '_') {
|
||||
x = expand_envsimple(&src);
|
||||
} else {
|
||||
x = expand_envchar(&src);
|
||||
}
|
||||
xp = x;
|
||||
while (*xp)
|
||||
expand_append(&dst, &sz, &pos, *xp++);
|
||||
dds_free(x);
|
||||
} else {
|
||||
expand_append(&dst, &sz, &pos, *src++);
|
||||
}
|
||||
}
|
||||
expand_append(&dst, &sz, &pos, 0);
|
||||
return dst;
|
||||
}
|
||||
|
||||
static unsigned split_partitions(const char ***p_ps, char **p_bufcopy, const char *buf) {
|
||||
const char *b;
|
||||
const char **ps;
|
||||
|
@ -432,7 +276,7 @@ static unsigned split_partitions(const char ***p_ps, char **p_bufcopy, const cha
|
|||
nps += (*b == ',');
|
||||
}
|
||||
ps = dds_alloc(nps * sizeof(*ps));
|
||||
bufcopy = expand_envvars(buf);
|
||||
bufcopy = ddsrt_expand_envvars_sh(buf, 0);
|
||||
i = 0; bc = bufcopy;
|
||||
while (1) {
|
||||
ps[i++] = bc;
|
||||
|
@ -1427,7 +1271,7 @@ static char *pub_do_nonarb(const struct writerspec *spec, uint32_t *seq) {
|
|||
case 'Q': {
|
||||
dds_qos_t *qos = dds_create_qos ();
|
||||
setqos_from_args (DDS_KIND_PARTICIPANT, qos, 1, (const char **) &arg);
|
||||
dds_set_qos (dp, qos);
|
||||
(void) dds_set_qos (dp, qos);
|
||||
dds_delete_qos (qos);
|
||||
break;
|
||||
}
|
||||
|
@ -2058,8 +1902,8 @@ static uint32_t autotermthread(void *varg __attribute__((unused))) {
|
|||
tnow = dds_time();
|
||||
}
|
||||
|
||||
dds_waitset_detach(ws, termcond);
|
||||
dds_delete(ws);
|
||||
(void) dds_waitset_detach(ws, termcond);
|
||||
(void) dds_delete(ws);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -2648,7 +2492,7 @@ int main(int argc, char *argv[]) {
|
|||
{
|
||||
char **ps = (char **) dds_alloc(sizeof(char *) * (uint32_t)(argc - optind));
|
||||
for (i = 0; i < (unsigned) (argc - optind); i++)
|
||||
ps[i] = expand_envvars(argv[(unsigned) optind + i]);
|
||||
ps[i] = ddsrt_expand_envvars_sh(argv[(unsigned) optind + i], 0);
|
||||
if (want_reader) {
|
||||
qos = dds_create_qos();
|
||||
setqos_from_args(DDS_KIND_SUBSCRIBER, qos, nqsubscriber, qsubscriber);
|
||||
|
@ -2709,7 +2553,7 @@ int main(int argc, char *argv[]) {
|
|||
fprintf (stderr,"C99 API doesn't support the creation of content filtered topic.\n");
|
||||
spec[i].cftp = spec[i].tp;
|
||||
// TODO Content Filtered Topic support
|
||||
// char name[40], *expr = expand_envvars(spec[i].cftp_expr);
|
||||
// char name[40], *expr = expand_envvars_sh(spec[i].cftp_exp, 0);
|
||||
// DDS_StringSeq *params = DDS_StringSeq__alloc();
|
||||
// snprintf (name, sizeof (name), "cft%u", i);
|
||||
// if ((spec[i].cftp = DDS_DomainParticipant_create_contentfilteredtopic(dp, name, spec[i].tp, expr, params)) == NULL)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue