return -1;
}
- if (!fgets(buf, 1024, file)) {
+ if (!fgets(buf, sizeof(buf), file)) {
pr_err("Failed to read file %s\n", STATFILE);
fclose(file);
return -1;
return -1;
}
- while (fgets(buf, 1024, file)) {
- get_word(buf, 0, word, 1024);
+ while (fgets(buf, sizeof(buf), file)) {
+ get_word(buf, 0, word, sizeof(word));
if (!strcmp(word, "MemFree:")) {
free = dec_to_int(buf, NULL);
int cpu_mem_parser(char *data, const char **p)
{
- char cpu[1024], mem[1024];
+ char cpu[RRD_DATA_MAX_LEN], mem[RRD_DATA_MAX_LEN];
cpu_parser(cpu, p);
mem_parser(mem, p);
char **cmd = tmp;
pid = run_piped_stream(cmd[0], &cmd[1], NULL, &readf, NULL);
- ret = fread(rrd_data, 1, RRD_DATA_MAX_LEN, readf);
+ ret = fread(rrd_data, 1, RRD_DATA_MAX_LEN - 1, readf);
+ if (ret < 0) {
+ pr_err("Error on read: %m\n");
+ goto err_read;
+ }
+ rrd_data[ret] = 0;
pr_info("Read %d bytes :%s\n", ret, rrd_data);
+
+err_read:
fclose(readf);
harvest_zombies(pid);