summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author/C=EU/ST=EU/CN=Patrick McHardy/emailAddress=kaber@trash.net </C=EU/ST=EU/CN=Patrick McHardy/emailAddress=kaber@trash.net>2007-10-17 08:48:58 +0000
committer/C=EU/ST=EU/CN=Patrick McHardy/emailAddress=kaber@trash.net </C=EU/ST=EU/CN=Patrick McHardy/emailAddress=kaber@trash.net>2007-10-17 08:48:58 +0000
commit3b29ec13b41cd95da917c36a8852b859d35e3602 (patch)
treecab9d2a12208245152d63e7042fc2e5d5755e763
parent496da141ec91dd4abd15fcc4e8150884705982e3 (diff)
Fix sscanf type errors
-rw-r--r--ip6tables-restore.c14
-rw-r--r--ip6tables.c12
-rw-r--r--iptables-restore.c14
-rw-r--r--iptables.c11
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;