diff options
author | Thomas Habets <thomas@habets.se> | 2017-01-18 08:58:13 -0500 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2017-01-18 15:03:22 +0100 |
commit | 96472f872800db05bb7d66db827dbd9c76e28ea6 (patch) | |
tree | 12b3c1ec74441ce13c9b980893336d7001a2643c | |
parent | 1123e6a069123756c6c73d5557d06bc5fc31497e (diff) |
iptables-save: exit with error if unable to open proc file
Signed-off-by: Florian Westphal <fw@strlen.de>
-rw-r--r-- | iptables/ip6tables-save.c | 14 | ||||
-rw-r--r-- | iptables/iptables-save.c | 14 |
2 files changed, 20 insertions, 8 deletions
diff --git a/iptables/ip6tables-save.c b/iptables/ip6tables-save.c index f35e921e..053413a9 100644 --- a/iptables/ip6tables-save.c +++ b/iptables/ip6tables-save.c @@ -35,10 +35,16 @@ static int for_each_table(int (*func)(const char *tablename)) int ret = 1; FILE *procfile = NULL; char tablename[XT_TABLE_MAXNAMELEN+1]; - - procfile = fopen("/proc/net/ip6_tables_names", "re"); - if (!procfile) - return ret; + static const char filename[] = "/proc/net/ip6_tables_names"; + + procfile = fopen(filename, "re"); + if (!procfile) { + if (errno == ENOENT) + return ret; + fprintf(stderr, "Failed to list table names in %s: %s\n", + filename, strerror(errno)); + exit(1); + } while (fgets(tablename, sizeof(tablename), procfile)) { if (tablename[strlen(tablename) - 1] != '\n') diff --git a/iptables/iptables-save.c b/iptables/iptables-save.c index 238f368e..e8ae9c6c 100644 --- a/iptables/iptables-save.c +++ b/iptables/iptables-save.c @@ -33,10 +33,16 @@ static int for_each_table(int (*func)(const char *tablename)) int ret = 1; FILE *procfile = NULL; char tablename[XT_TABLE_MAXNAMELEN+1]; - - procfile = fopen("/proc/net/ip_tables_names", "re"); - if (!procfile) - return ret; + static const char filename[] = "/proc/net/ip_tables_names"; + + procfile = fopen(filename, "re"); + if (!procfile) { + if (errno == ENOENT) + return ret; + fprintf(stderr, "Failed to list table names in %s: %s\n", + filename, strerror(errno)); + exit(1); + } while (fgets(tablename, sizeof(tablename), procfile)) { if (tablename[strlen(tablename) - 1] != '\n') |