ip{,6}tunnel: align do_tunnels_list() a bit
In iptunnel, declare loop variables inside the loop as done in
ip6tunnel.
Fix and simplify goto logic in ip6tunnel:
- Failure to read over header lines would have left fp opened.
- By returning directly upon fopen() failure, fp can be closed
unconditionally in the end.
Use the same goto logic in iptunnel, as well.
Signed-off-by: Phil Sutter <phil@nwl.cc>
diff --git a/ip/ip6tunnel.c b/ip/ip6tunnel.c
index 410276f..ba92518 100644
--- a/ip/ip6tunnel.c
+++ b/ip/ip6tunnel.c
@@ -326,14 +326,14 @@
FILE *fp = fopen("/proc/net/dev", "r");
if (fp == NULL) {
perror("fopen");
- goto end;
+ return -1;
}
/* skip two lines at the begenning of the file */
if (!fgets(buf, sizeof(buf), fp) ||
!fgets(buf, sizeof(buf), fp)) {
fprintf(stderr, "/proc/net/dev read error\n");
- return -1;
+ goto end;
}
while (fgets(buf, sizeof(buf), fp) != NULL) {
@@ -395,10 +395,8 @@
printf("\n");
}
err = 0;
-
end:
- if (fp)
- fclose(fp);
+ fclose(fp);
return err;
}