[netfilter-cvslog] r7049 - trunk/iptables/extensions

kaber at trash.net kaber at trash.net
Wed Sep 19 14:59:33 CEST 2007


Author: kaber at trash.net
Date: 2007-09-19 14:59:33 +0200 (Wed, 19 Sep 2007)
New Revision: 7049

Modified:
   trunk/iptables/extensions/libxt_u32.c
Log:
[PATCH]: Fix u32 warnings

warning: format '%ld' expects type 'long int', but argument 3 has type 'int'.

With %u alone, you would get "but arg-start is long" warnings on x64.
With %lu, you would get "but arg-start is int" on x86.
Fix it up by explicitly deciding for one (%u and cast to unsigned int)
and using that.

Jan Engelhardt <jengelh at computergmbh.de>


Modified: trunk/iptables/extensions/libxt_u32.c
===================================================================
--- trunk/iptables/extensions/libxt_u32.c	2007-09-19 12:47:45 UTC (rev 7048)
+++ trunk/iptables/extensions/libxt_u32.c	2007-09-19 12:59:33 UTC (rev 7049)
@@ -142,8 +142,8 @@
 
 			if (testind > XT_U32_MAXSIZE)
 				exit_error(PARAMETER_PROBLEM,
-				           "u32: at char %ld: too many \"&&\"s",
-				           arg - start);
+				           "u32: at char %u: too many \"&&\"s",
+				           (unsigned int)(arg - start));
 			return 1;
 		}
 
@@ -155,9 +155,9 @@
 			if (*arg == '=') {
 				if (locind == 0) {
 					exit_error(PARAMETER_PROBLEM,
-					           "u32: at char %ld: "
+					           "u32: at char %u: "
 					           "location spec missing",
-					           arg - start);
+					           (unsigned int)(arg - start));
 				} else {
 					++arg;
 					state = 1;
@@ -170,18 +170,18 @@
 					} else if (*arg == '<') {
 						if (*++arg != '<')
 							exit_error(PARAMETER_PROBLEM,
-								   "u32: at char %ld: a second < expected", arg - start);
+								   "u32: at char %u: a second '<' was expected", (unsigned int)(arg - start));
 						ct->location[locind].nextop = XT_U32_LEFTSH;
 					} else if (*arg == '>') {
 						if (*++arg != '>')
 							exit_error(PARAMETER_PROBLEM,
-								   "u32: at char %ld: a second > expected", arg - start);
+								   "u32: at char %u: a second '>' was expected", (unsigned int)(arg - start));
 						ct->location[locind].nextop = XT_U32_RIGHTSH;
 					} else if (*arg == '@') {
 						ct->location[locind].nextop = XT_U32_AT;
 					} else {
 						exit_error(PARAMETER_PROBLEM,
-							"u32: at char %ld: operator expected", arg - start);
+							"u32: at char %u: operator expected", (unsigned int)(arg - start));
 					}
 					++arg;
 				}
@@ -190,7 +190,7 @@
 					parse_number(&arg, arg - start);
 				if (++locind > XT_U32_MAXSIZE)
 					exit_error(PARAMETER_PROBLEM,
-						   "u32: at char %ld: too many operators", arg - start);
+						   "u32: at char %u: too many operators", (unsigned int)(arg - start));
 			}
 		} else {
 			/*
@@ -201,17 +201,17 @@
 			if (*arg == '&') {
 				if (*++arg != '&')
 					exit_error(PARAMETER_PROBLEM,
-						   "u32: at char %ld: a second & was expected", arg - start);
+						   "u32: at char %u: a second '&' was expected", (unsigned int)(arg - start));
 				if (valind == 0) {
 					exit_error(PARAMETER_PROBLEM,
-						   "u32: at char %ld: value spec missing", arg - start);
+						   "u32: at char %u: value spec missing", (unsigned int)(arg - start));
 				} else {
 					ct->nnums   = locind;
 					ct->nvalues = valind;
 					ct = &data->tests[++testind];
 					if (testind > XT_U32_MAXSIZE)
 						exit_error(PARAMETER_PROBLEM,
-							   "u32: at char %ld: too many \"&&\"s", arg - start);
+							   "u32: at char %u: too many \"&&\"s", (unsigned int)(arg - start));
 					++arg;
 					state  = 0;
 					locind = 0;
@@ -221,7 +221,7 @@
 				if (valind > 0) { /* need , before number */
 					if (*arg != ',')
 						exit_error(PARAMETER_PROBLEM,
-							   "u32: at char %ld: expected , or &&", arg - start);
+							   "u32: at char %u: expected \",\" or \"&&\"", (unsigned int)(arg - start));
 					++arg;
 				}
 				ct->value[valind].min =
@@ -241,7 +241,7 @@
 
 				if (++valind > XT_U32_MAXSIZE)
 					exit_error(PARAMETER_PROBLEM,
-						   "u32: at char %ld: too many \",\"s", arg - start);
+						   "u32: at char %u: too many \",\"s", (unsigned int)(arg - start));
 			}
 		}
 	}




More information about the netfilter-cvslog mailing list