projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
src/utils_db_query.c: Correctly handle return value of strjoin().
[collectd.git]
/
src
/
utils_db_query.c
diff --git
a/src/utils_db_query.c
b/src/utils_db_query.c
index
ab4299b
..
5fbdfd1
100644
(file)
--- a/
src/utils_db_query.c
+++ b/
src/utils_db_query.c
@@
-192,8
+192,9
@@
static int udb_result_submit (udb_result_t *r, /* {{{ */
assert (r != NULL);
assert (r_area->ds != NULL);
assert (((size_t) r_area->ds->ds_num) == r->values_num);
assert (r != NULL);
assert (r_area->ds != NULL);
assert (((size_t) r_area->ds->ds_num) == r->values_num);
+ assert (r->values_num > 0);
- vl.values = (value_t *) calloc (r
_area->ds->d
s_num, sizeof (value_t));
+ vl.values = (value_t *) calloc (r
->value
s_num, sizeof (value_t));
if (vl.values == NULL)
{
ERROR ("db query utils: malloc failed.");
if (vl.values == NULL)
{
ERROR ("db query utils: malloc failed.");
@@
-235,15
+236,27
@@
static int udb_result_submit (udb_result_t *r, /* {{{ */
{
if (r->instance_prefix == NULL)
{
{
if (r->instance_prefix == NULL)
{
- strjoin (vl.type_instance, sizeof (vl.type_instance),
+
int status =
strjoin (vl.type_instance, sizeof (vl.type_instance),
r_area->instances_buffer, r->instances_num, "-");
r_area->instances_buffer, r->instances_num, "-");
+ if (status < 0)
+ {
+ ERROR ("udb_result_submit: creating type_instance failed with status %d.",
+ status);
+ return (status);
+ }
}
else
{
char tmp[DATA_MAX_NAME_LEN];
}
else
{
char tmp[DATA_MAX_NAME_LEN];
- strjoin (tmp, sizeof (tmp), r_area->instances_buffer,
+
int status =
strjoin (tmp, sizeof (tmp), r_area->instances_buffer,
r->instances_num, "-");
r->instances_num, "-");
+ if (status < 0)
+ {
+ ERROR ("udb_result_submit: creating type_instance failed with status %d.",
+ status);
+ return (status);
+ }
tmp[sizeof (tmp) - 1] = 0;
snprintf (vl.type_instance, sizeof (vl.type_instance), "%s-%s",
tmp[sizeof (tmp) - 1] = 0;
snprintf (vl.type_instance, sizeof (vl.type_instance), "%s-%s",
@@
-542,7
+555,7
@@
static int udb_result_create (const char *query_name, /* {{{ */
/*
* Query private functions
*/
/*
* Query private functions
*/
-void udb_query_free_one (udb_query_t *q) /* {{{ */
+
static
void udb_query_free_one (udb_query_t *q) /* {{{ */
{
if (q == NULL)
return;
{
if (q == NULL)
return;