]> git.itanic.dy.fi Git - rrdd/blobdiff - network_parser.c
onewire_parser.c: Fix compiler warnings about string lengths
[rrdd] / network_parser.c
index 0e8475a2b503f9661c3dd4dce4a35bc294839c99..92c0d07f3d43bed43142a0b46e191ae17d63a0d1 100644 (file)
@@ -172,6 +172,7 @@ static int parse_line(struct network_parser_data *data)
        len++;
        memmove(data->buf, s, sizeof(data->buf) - len);
        data->idx -= len;
+       bzero(data->buf + data->idx, sizeof(data->buf) - data->idx);
 
        return 1;
 }
@@ -200,14 +201,14 @@ static int network_multi_parser(char ***rrd_data, const char **parser_data,
 
        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 */
@@ -261,12 +262,16 @@ static int network_multi_parser(char ***rrd_data, const char **parser_data,
 
                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:
        /*
@@ -275,6 +280,7 @@ out_close:
         */
        if (data->fd != -1) {
                register_event_handler(&data->ev, EPOLL_CTL_DEL);
+out_close_noderegister:
                close(data->fd);
                data->fd = -1;
        }