mirror of
https://git.proxmox.com/git/mirror_iproute2
synced 2025-11-03 12:26:45 +00:00
ifstat, nstat: Check fdopen() return value
Prevent passing NULL FILE pointer to fgets() later. Fix both tools in a single patch since the code changes are basically identical. Signed-off-by: Phil Sutter <phil@nwl.cc>
This commit is contained in:
parent
ae4e21c93f
commit
6d02518fdc
@ -992,12 +992,18 @@ int main(int argc, char *argv[])
|
||||
&& verify_forging(fd) == 0) {
|
||||
FILE *sfp = fdopen(fd, "r");
|
||||
|
||||
load_raw_table(sfp);
|
||||
if (hist_db && source_mismatch) {
|
||||
fprintf(stderr, "ifstat: history is stale, ignoring it.\n");
|
||||
hist_db = NULL;
|
||||
if (!sfp) {
|
||||
fprintf(stderr, "ifstat: fdopen failed: %s\n",
|
||||
strerror(errno));
|
||||
close(fd);
|
||||
} else {
|
||||
load_raw_table(sfp);
|
||||
if (hist_db && source_mismatch) {
|
||||
fprintf(stderr, "ifstat: history is stale, ignoring it.\n");
|
||||
hist_db = NULL;
|
||||
}
|
||||
fclose(sfp);
|
||||
}
|
||||
fclose(sfp);
|
||||
} else {
|
||||
if (fd >= 0)
|
||||
close(fd);
|
||||
|
||||
16
misc/nstat.c
16
misc/nstat.c
@ -706,12 +706,18 @@ int main(int argc, char *argv[])
|
||||
&& verify_forging(fd) == 0) {
|
||||
FILE *sfp = fdopen(fd, "r");
|
||||
|
||||
load_good_table(sfp);
|
||||
if (hist_db && source_mismatch) {
|
||||
fprintf(stderr, "nstat: history is stale, ignoring it.\n");
|
||||
hist_db = NULL;
|
||||
if (!sfp) {
|
||||
fprintf(stderr, "nstat: fdopen failed: %s\n",
|
||||
strerror(errno));
|
||||
close(fd);
|
||||
} else {
|
||||
load_good_table(sfp);
|
||||
if (hist_db && source_mismatch) {
|
||||
fprintf(stderr, "nstat: history is stale, ignoring it.\n");
|
||||
hist_db = NULL;
|
||||
}
|
||||
fclose(sfp);
|
||||
}
|
||||
fclose(sfp);
|
||||
} else {
|
||||
if (fd >= 0)
|
||||
close(fd);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user