len++;
memmove(data->buf, s, sizeof(data->buf) - len);
data->idx -= len;
+ bzero(data->buf + data->idx, sizeof(data->buf) - data->idx);
return 1;
}
data->fd = socket(AF_INET, SOCK_STREAM, 0);
if (data->fd == -1) {
- printf("Failed to create socket: %m\n");
+ pr_err("Failed to create socket: %m\n");
return -1;
}
ret = connect(data->fd, (struct sockaddr *)&data->addr, sizeof(data->addr));
if (ret < 0) {
pr_err("Failed to connect to %s: %m\n", data_addrstr(data));
- return -1;
+ goto out_close_noderegister;
}
/* Send the last update timestamp to every host */
strncpy(rdata[d], data->last_line, RRD_DATA_MAX_LEN);
data->last_time = 0;
+ bzero(data->last_line, sizeof(data->last_line));
mutex_unlock(&data->lock);
}
pr_info("Finished at line %d, idx: %d\n", d, data->idx);
ret = d;
+ bzero(data->last_line, sizeof(data->last_line));
+ bzero(data->buf, sizeof(data->buf));
+ data->idx = 0;
out_close:
/*
*/
if (data->fd != -1) {
register_event_handler(&data->ev, EPOLL_CTL_DEL);
+out_close_noderegister:
close(data->fd);
data->fd = -1;
}