X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Ftypes_list.c;h=002761ce3e7a76568df04612058d1492825595d2;hb=63cbff115ba03717e81087d1419fc07c24d205c2;hp=6fce0190f3046405506b0ea83fc7ba6e8d5aa5ee;hpb=0c9a0c0e0abbe3668673f52abaa395584b2bb4e7;p=collectd.git diff --git a/src/types_list.c b/src/types_list.c index 6fce0190..002761ce 100644 --- a/src/types_list.c +++ b/src/types_list.c @@ -129,8 +129,9 @@ static void parse_line (char *buf, size_t buf_len) ds->type, ds->ds_num, (void *) ds->ds); plugin_register_data_set (ds); - /* Do NOT free `ds' and `ds->ds', because it's NOT copied by - * `plugin_register_data_set'!. */ + + sfree (ds->ds); + sfree (ds); } /* void parse_line */ static void parse_file (FILE *fh) @@ -157,6 +158,13 @@ static void parse_file (FILE *fh) if ((buf_len == 0) || (buf[0] == '#')) continue; + while ((buf_len > 0) && ((buf[buf_len - 1] == '\n') + || (buf[buf_len - 1] == '\n'))) + buf[--buf_len] = '\0'; + + if (buf_len == 0) + continue; + parse_line (buf, buf_len); } /* while (fgets) */ } /* void parse_file */