From 3b29ec13b41cd95da917c36a8852b859d35e3602 Mon Sep 17 00:00:00 2001 From: "/C=EU/ST=EU/CN=Patrick McHardy/emailAddress=kaber@trash.net" Date: Wed, 17 Oct 2007 08:48:58 +0000 Subject: Fix sscanf type errors --- ip6tables-restore.c | 14 +++++++++----- ip6tables.c | 12 ++++++------ iptables-restore.c | 14 +++++++++----- iptables.c | 11 +++++------ 4 files changed, 29 insertions(+), 22 deletions(-) diff --git a/ip6tables-restore.c b/ip6tables-restore.c index a34e226..8b56c08 100644 --- a/ip6tables-restore.c +++ b/ip6tables-restore.c @@ -77,11 +77,15 @@ ip6tc_handle_t create_handle(const char *tablename, const char* modprobe) static int parse_counters(char *string, struct ip6t_counters *ctr) { - u_int64_t *pcnt, *bcnt; - - pcnt = &ctr->pcnt; - bcnt = &ctr->bcnt; - return (sscanf(string, "[%llu:%llu]", (unsigned long long *)pcnt, (unsigned long long *)bcnt) == 2); + unsigned long long pcnt, bcnt; + int ret; + + ret = sscanf(string, "[%llu:%llu]", + (unsigned long long *)&pcnt, + (unsigned long long *)&bcnt); + ctr->pcnt = pcnt; + ctr->bcnt = bcnt; + return ret == 2; } /* global new argv and argc */ diff --git a/ip6tables.c b/ip6tables.c index 026a495..f658fc7 100644 --- a/ip6tables.c +++ b/ip6tables.c @@ -1413,7 +1413,7 @@ int do_command6(int argc, char *argv[], char **table, ip6tc_handle_t *handle) const char *jumpto = ""; char *protocol = NULL; int proto_used = 0; - u_int64_t *cnt; + unsigned long long cnt; memset(&fw, 0, sizeof(fw)); @@ -1728,18 +1728,18 @@ int do_command6(int argc, char *argv[], char **table, ip6tc_handle_t *handle) "-%c requires packet and byte counter", opt2char(OPT_COUNTERS)); - cnt = &fw.counters.pcnt; - if (sscanf(pcnt, "%llu", (unsigned long long *)cnt) != 1) + if (sscanf(pcnt, "%llu", (unsigned long long *)&cnt) != 1) exit_error(PARAMETER_PROBLEM, "-%c packet counter not numeric", opt2char(OPT_COUNTERS)); + fw.counters.pcnt = cnt; - cnt = &fw.counters.bcnt; - if (sscanf(bcnt, "%llu", (unsigned long long *)cnt) != 1) + if (sscanf(bcnt, "%llu", (unsigned long long *)&cnt) != 1) exit_error(PARAMETER_PROBLEM, "-%c byte counter not numeric", opt2char(OPT_COUNTERS)); - + fw.counters.bcnt = cnt; + break; diff --git a/iptables-restore.c b/iptables-restore.c index df351ad..c0e168e 100644 --- a/iptables-restore.c +++ b/iptables-restore.c @@ -74,11 +74,15 @@ iptc_handle_t create_handle(const char *tablename, const char* modprobe ) static int parse_counters(char *string, struct ipt_counters *ctr) { - u_int64_t *pcnt, *bcnt; - - pcnt = &ctr->pcnt; - bcnt = &ctr->bcnt; - return (sscanf(string, "[%llu:%llu]", (unsigned long long *)pcnt, (unsigned long long *)bcnt) == 2); + unsigned long long pcnt, bcnt; + int ret; + + ret = sscanf(string, "[%llu:%llu]", + (unsigned long long *)&pcnt, + (unsigned long long *)&bcnt); + ctr->pcnt = pcnt; + ctr->bcnt = bcnt; + return ret == 2; } /* global new argv and argc */ diff --git a/iptables.c b/iptables.c index d7a45ee..25ca358 100644 --- a/iptables.c +++ b/iptables.c @@ -1469,7 +1469,7 @@ int do_command(int argc, char *argv[], char **table, iptc_handle_t *handle) const char *jumpto = ""; char *protocol = NULL; int proto_used = 0; - u_int64_t *cnt; + unsigned long long cnt; memset(&fw, 0, sizeof(fw)); @@ -1794,18 +1794,17 @@ int do_command(int argc, char *argv[], char **table, iptc_handle_t *handle) "-%c requires packet and byte counter", opt2char(OPT_COUNTERS)); - cnt = &fw.counters.pcnt; - if (sscanf(pcnt, "%llu", (unsigned long long *)cnt) != 1) + if (sscanf(pcnt, "%llu", (unsigned long long *)&cnt) != 1) exit_error(PARAMETER_PROBLEM, "-%c packet counter not numeric", opt2char(OPT_COUNTERS)); + fw.counters.pcnt = cnt; - cnt = &fw.counters.bcnt; - if (sscanf(bcnt, "%llu", (unsigned long long *)cnt) != 1) + if (sscanf(bcnt, "%llu", (unsigned long long *)&cnt) != 1) exit_error(PARAMETER_PROBLEM, "-%c byte counter not numeric", opt2char(OPT_COUNTERS)); - + fw.counters.bcnt = cnt; break; -- cgit v1.2.3