projects
/
collectd.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5f6d3ce
)
set target: Ensure that int being cast to size_t is positive or zero.
author
Florian Forster
<octo@collectd.org>
Mon, 20 Nov 2017 10:04:01 +0000
(11:04 +0100)
committer
Florian Forster
<octo@collectd.org>
Mon, 20 Nov 2017 10:04:01 +0000
(11:04 +0100)
CID: 157643
src/target_set.c
patch
|
blob
|
history
diff --git
a/src/target_set.c
b/src/target_set.c
index
a40273c
..
7c02c48
100644
(file)
--- a/
src/target_set.c
+++ b/
src/target_set.c
@@
-184,11
+184,12
@@
static void ts_subst(char *dest, size_t size, const char *string, /* {{{ */
if (vl->meta != NULL) {
char **meta_toc = NULL;
if (vl->meta != NULL) {
char **meta_toc = NULL;
- int
meta_entrie
s = meta_data_toc(vl->meta, &meta_toc);
- if (
meta_entrie
s <= 0)
+ int
statu
s = meta_data_toc(vl->meta, &meta_toc);
+ if (
statu
s <= 0)
return;
return;
+ size_t meta_entries = (size_t)status;
- for (
in
t i = 0; i < meta_entries; i++) {
+ for (
size_
t i = 0; i < meta_entries; i++) {
char meta_name[DATA_MAX_NAME_LEN];
char *value_str;
const char *key = meta_toc[i];
char meta_name[DATA_MAX_NAME_LEN];
char *value_str;
const char *key = meta_toc[i];
@@
-342,7
+343,6
@@
static int ts_invoke(const data_set_t *ds, value_list_t *vl, /* {{{ */
if (data->meta != NULL) {
char temp[DATA_MAX_NAME_LEN * 2];
if (data->meta != NULL) {
char temp[DATA_MAX_NAME_LEN * 2];
- int meta_entries;
char **meta_toc;
if ((new_meta = meta_data_create()) == NULL) {
char **meta_toc;
if ((new_meta = meta_data_create()) == NULL) {
@@
-350,8
+350,14
@@
static int ts_invoke(const data_set_t *ds, value_list_t *vl, /* {{{ */
return (-ENOMEM);
}
return (-ENOMEM);
}
- meta_entries = meta_data_toc(data->meta, &meta_toc);
- for (int i = 0; i < meta_entries; i++) {
+ int status = meta_data_toc(data->meta, &meta_toc);
+ if (status < 0) {
+ ERROR("Target `set': meta_data_toc failed with status %d.", status);
+ return status;
+ }
+ size_t meta_entries = (size_t)status;
+
+ for (size_t i = 0; i < meta_entries; i++) {
const char *key = meta_toc[i];
char *string;
int status;
const char *key = meta_toc[i];
char *string;
int status;
@@
-360,7
+366,7
@@
static int ts_invoke(const data_set_t *ds, value_list_t *vl, /* {{{ */
if (status) {
ERROR("Target `set': Unable to get replacement metadata value `%s'.",
key);
if (status) {
ERROR("Target `set': Unable to get replacement metadata value `%s'.",
key);
- strarray_free(meta_toc,
(size_t)
meta_entries);
+ strarray_free(meta_toc, meta_entries);
meta_data_destroy(new_meta);
return (status);
}
meta_data_destroy(new_meta);
return (status);
}
@@
-376,13
+382,13
@@
static int ts_invoke(const data_set_t *ds, value_list_t *vl, /* {{{ */
status = meta_data_add_string(new_meta, key, temp);
if (status) {
ERROR("Target `set': Unable to set metadata value `%s'.", key);
status = meta_data_add_string(new_meta, key, temp);
if (status) {
ERROR("Target `set': Unable to set metadata value `%s'.", key);
- strarray_free(meta_toc,
(size_t)
meta_entries);
+ strarray_free(meta_toc, meta_entries);
meta_data_destroy(new_meta);
return (status);
}
}
meta_data_destroy(new_meta);
return (status);
}
}
- strarray_free(meta_toc,
(size_t)
meta_entries);
+ strarray_free(meta_toc, meta_entries);
}
#define SUBST_FIELD(f) \
}
#define SUBST_FIELD(f) \