]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
Fix sscanf type errors
authorPatrick McHardy <kaber@trash.net>
Wed, 17 Oct 2007 08:48:58 +0000 (08:48 +0000)
committerPatrick McHardy <kaber@trash.net>
Wed, 17 Oct 2007 08:48:58 +0000 (08:48 +0000)
ip6tables-restore.c
ip6tables.c
iptables-restore.c
iptables.c

index a34e2260eff306fc276a86f464c58108f34262e0..8b56c0831cbd6dc0dd152de5ee78b1533dc77a14 100644 (file)
@@ -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 */
index 026a4954394af2c7be93c80c95ad80f1e04a5236..f658fc7ab4f010c23df64af2a46d46265c27a48c 100644 (file)
@@ -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;
 
 
index df351ad638f79d1cb047b63183a07d202335e87f..c0e168e67ae9826b7ba822a58bb906bb597654e4 100644 (file)
@@ -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 */
index d7a45eeb34e855b1652523d24fd4d952885591a6..25ca3583ea76d8af15937123bdf3919e24a16a25 100644 (file)
@@ -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;