diff options
author | Patrick McHardy <kaber@trash.net> | 2007-09-05 14:10:53 +0000 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2007-09-05 14:10:53 +0000 |
commit | b73691f9e67149deefbc2d2115d66dfc62264333 (patch) | |
tree | 91d7aad991612c21f4add4e1e54a2c16cf914b54 | |
parent | 31317ed1f9103434adda716abbe65e9fc7bdd418 (diff) |
Fix strict aliasing warnings
-rw-r--r-- | ip6tables.c | 7 | ||||
-rw-r--r-- | iptables-restore.c | 6 | ||||
-rw-r--r-- | iptables-xml.c | 12 | ||||
-rw-r--r-- | iptables.c | 7 |
4 files changed, 23 insertions, 9 deletions
diff --git a/ip6tables.c b/ip6tables.c index 79c31bb9..d43029eb 100644 --- a/ip6tables.c +++ b/ip6tables.c @@ -1413,6 +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; memset(&fw, 0, sizeof(fw)); @@ -1727,12 +1728,14 @@ int do_command6(int argc, char *argv[], char **table, ip6tc_handle_t *handle) "-%c requires packet and byte counter", opt2char(OPT_COUNTERS)); - if (sscanf(pcnt, "%llu", (unsigned long long *)&fw.counters.pcnt) != 1) + cnt = &fw.counters.pcnt; + if (sscanf(pcnt, "%llu", (unsigned long long *)cnt) != 1) exit_error(PARAMETER_PROBLEM, "-%c packet counter not numeric", opt2char(OPT_COUNTERS)); - if (sscanf(bcnt, "%llu", (unsigned long long *)&fw.counters.bcnt) != 1) + cnt = &fw.counters.bcnt; + if (sscanf(bcnt, "%llu", (unsigned long long *)cnt) != 1) exit_error(PARAMETER_PROBLEM, "-%c byte counter not numeric", opt2char(OPT_COUNTERS)); diff --git a/iptables-restore.c b/iptables-restore.c index 1a4beeb4..df351ad6 100644 --- a/iptables-restore.c +++ b/iptables-restore.c @@ -74,7 +74,11 @@ iptc_handle_t create_handle(const char *tablename, const char* modprobe ) static int parse_counters(char *string, struct ipt_counters *ctr) { - return (sscanf(string, "[%llu:%llu]", (unsigned long long *)&ctr->pcnt, (unsigned long long *)&ctr->bcnt) == 2); + 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); } /* global new argv and argc */ diff --git a/iptables-xml.c b/iptables-xml.c index 1bb2e203..2aefb1aa 100644 --- a/iptables-xml.c +++ b/iptables-xml.c @@ -70,12 +70,16 @@ print_usage(const char *name, const char *version) static int parse_counters(char *string, struct ipt_counters *ctr) { - if (string != NULL) + u_int64_t *pcnt, *bcnt; + + if (string != NULL) { + pcnt = &ctr->pcnt; + bcnt = &ctr->bcnt; return (sscanf (string, "[%llu:%llu]", - (unsigned long long *) &ctr->pcnt, - (unsigned long long *) &ctr->bcnt) == 2); - else + (unsigned long long *)pcnt, + (unsigned long long *)bcnt) == 2); + } else return (0 == 2); } @@ -1469,6 +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; memset(&fw, 0, sizeof(fw)); @@ -1793,12 +1794,14 @@ int do_command(int argc, char *argv[], char **table, iptc_handle_t *handle) "-%c requires packet and byte counter", opt2char(OPT_COUNTERS)); - if (sscanf(pcnt, "%llu", (unsigned long long *)&fw.counters.pcnt) != 1) + cnt = &fw.counters.pcnt; + if (sscanf(pcnt, "%llu", (unsigned long long *)cnt) != 1) exit_error(PARAMETER_PROBLEM, "-%c packet counter not numeric", opt2char(OPT_COUNTERS)); - if (sscanf(bcnt, "%llu", (unsigned long long *)&fw.counters.bcnt) != 1) + cnt = &fw.counters.bcnt; + if (sscanf(bcnt, "%llu", (unsigned long long *)cnt) != 1) exit_error(PARAMETER_PROBLEM, "-%c byte counter not numeric", opt2char(OPT_COUNTERS)); |