From: Florian Forster Date: Wed, 17 Jun 2015 06:38:27 +0000 (+0200) Subject: ceph plugin: Fix allocation size. X-Git-Tag: collectd-5.5.1~111 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=4f70f3c70c73e0f4c6c99a9f2962a09ab31a61b7;p=collectd.git ceph plugin: Fix allocation size. --- diff --git a/src/ceph.c b/src/ceph.c index 56e349c3..d928a7ba 100644 --- a/src/ceph.c +++ b/src/ceph.c @@ -657,7 +657,8 @@ static int cc_handle_bool(struct oconfig_item_s *item, int *dest) static int cc_add_daemon_config(oconfig_item_t *ci) { int ret, i; - struct ceph_daemon *array, *nd, cd; + struct ceph_daemon *nd, cd; + struct ceph_daemon **tmp; memset(&cd, 0, sizeof(struct ceph_daemon)); if((ci->values_num != 1) || (ci->values[0].type != OCONFIG_TYPE_STRING)) @@ -709,21 +710,21 @@ static int cc_add_daemon_config(oconfig_item_t *ci) return -EINVAL; } - array = realloc(g_daemons, - sizeof(struct ceph_daemon *) * (g_num_daemons + 1)); - if(array == NULL) + tmp = realloc(g_daemons, (g_num_daemons+1) * sizeof(*g_daemons)); + if(tmp == NULL) { /* The positive return value here indicates that this is a * runtime error, not a configuration error. */ return ENOMEM; } - g_daemons = (struct ceph_daemon**) array; - nd = malloc(sizeof(struct ceph_daemon)); + g_daemons = tmp; + + nd = malloc(sizeof(*nd)); if(!nd) { return ENOMEM; } - memcpy(nd, &cd, sizeof(struct ceph_daemon)); + memcpy(nd, &cd, sizeof(*nd)); g_daemons[g_num_daemons++] = nd; return 0; }