diff options
Diffstat (limited to 'src/conntrack.c')
-rw-r--r-- | src/conntrack.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/conntrack.c b/src/conntrack.c index 8e546ab..eec3868 100644 --- a/src/conntrack.c +++ b/src/conntrack.c @@ -1445,19 +1445,18 @@ int main(int argc, char *argv[]) break; case CT_COUNT: { #define NF_CONNTRACK_COUNT_PROC "/proc/sys/net/netfilter/nf_conntrack_count" - int fd, count; - char buf[strlen("2147483647")]; /* INT_MAX */ - fd = open(NF_CONNTRACK_COUNT_PROC, O_RDONLY); - if (fd == -1) { + FILE *fd; + int count; + fd = fopen(NF_CONNTRACK_COUNT_PROC, "r"); + if (fd == NULL) { exit_error(OTHER_PROBLEM, "Can't open %s", NF_CONNTRACK_COUNT_PROC); } - if (read(fd, buf, sizeof(buf)) == -1) { + if (fscanf(fd, "%d", &count) != 1) { exit_error(OTHER_PROBLEM, "Can't read %s", NF_CONNTRACK_COUNT_PROC); } - close(fd); - count = atoi(buf); + fclose(fd); printf("%d\n", count); break; } |