@@ -819,7 +819,8 @@ int main(int argc, char *argv[])
}
if (uptime >= 0 && time(NULL) >= stb.st_mtime+uptime) {
fprintf(stderr, "ifstat: history is aged out, resetting\n");
- ftruncate(fileno(hist_fp), 0);
+ if (ftruncate(fileno(hist_fp), 0))
+ perror("ifstat: ftruncate");
}
}
@@ -862,7 +863,8 @@ int main(int argc, char *argv[])
}
if (!no_update) {
- ftruncate(fileno(hist_fp), 0);
+ if (ftruncate(fileno(hist_fp), 0))
+ perror("ifstat: ftruncate");
rewind(hist_fp);
json_output = 0;
@@ -138,7 +138,8 @@ static int lnstat_scan_fields(struct lnstat_file *lf)
char buf[FGETS_BUF_SIZE];
rewind(lf->fp);
- fgets(buf, sizeof(buf)-1, lf->fp);
+ if (!fgets(buf, sizeof(buf)-1, lf->fp))
+ return -1;
return __lnstat_scan_fields(lf, buf);
}
@@ -649,7 +649,8 @@ int main(int argc, char *argv[])
}
if (uptime >= 0 && time(NULL) >= stb.st_mtime+uptime) {
fprintf(stderr, "nstat: history is aged out, resetting\n");
- ftruncate(fileno(hist_fp), 0);
+ if (ftruncate(fileno(hist_fp), 0) < 0)
+ perror("nstat: ftruncate");
}
}
@@ -693,7 +694,8 @@ int main(int argc, char *argv[])
dump_incr_db(stdout);
}
if (!no_update) {
- ftruncate(fileno(hist_fp), 0);
+ if (ftruncate(fileno(hist_fp), 0) < 0)
+ perror("nstat: ftruncate");
rewind(hist_fp);
json_output = 0;
@@ -528,7 +528,8 @@ static void user_ent_hash_build(void)
snprintf(tmp, sizeof(tmp), "%s/%d/stat",
root, pid);
if ((fp = fopen(tmp, "r")) != NULL) {
- fscanf(fp, "%*d (%[^)])", p);
+ if (fscanf(fp, "%*d (%[^)])", p) < 1)
+ ; /* ignore */
fclose(fp);
}
}
@@ -660,7 +661,10 @@ static int get_slabstat(struct slabstat *s)
cnt = sizeof(*s)/sizeof(int);
- fgets(buf, sizeof(buf), fp);
+ if (!fgets(buf, sizeof(buf), fp)) {
+ fclose(fp);
+ return -1;
+ }
while(fgets(buf, sizeof(buf), fp) != NULL) {
int i;
for (i=0; i<sizeof(slabstat_ids)/sizeof(slabstat_ids[0]); i++) {
@@ -2725,7 +2729,10 @@ static int unix_show(struct filter *f)
if ((fp = net_unix_open()) == NULL)
return -1;
- fgets(buf, sizeof(buf)-1, fp);
+ if (!fgets(buf, sizeof(buf)-1, fp)) {
+ fclose(fp);
+ return -1;
+ }
if (memcmp(buf, "Peer", 4) == 0)
newformat = 1;
@@ -3210,7 +3217,10 @@ static int netlink_show(struct filter *f)
if ((fp = net_netlink_open()) == NULL)
return -1;
- fgets(buf, sizeof(buf)-1, fp);
+ if (!fgets(buf, sizeof(buf)-1, fp)) {
+ fclose(fp);
+ return -1;
+ }
while (fgets(buf, sizeof(buf)-1, fp)) {
sscanf(buf, "%llx %d %d %x %d %d %llx %d",
Although not fundamentally necessary to check return codes in these spots, preventing the warnings will put new ones into focus. Signed-off-by: Phil Sutter <phil@nwl.cc> --- misc/ifstat.c | 6 ++++-- misc/lnstat_util.c | 3 ++- misc/nstat.c | 6 ++++-- misc/ss.c | 18 ++++++++++++++---- 4 files changed, 24 insertions(+), 9 deletions(-)